您的位置:首页 > 运维架构 > Tomcat

Tomcat addWebapp()方法和addContext()方法

2016-07-16 09:34 323 查看
在做毕业设计,打算搞一个内嵌的tomcat,参考别人的代码已经看源码,终于把tomcat给启动起来了,但是访问项目出现了404错误,检查之后发现我用的是addContext()方法添加一个web应用,除此之外有一个addWebapp()方法也是返回一个context。
public Context addContext(Host host, String contextPath, String contextName,
String dir) {
silence(host, contextPath);
Context ctx = createContext(host, contextPath);
ctx.setName(contextName);
ctx.setPath(contextPath);
ctx.setDocBase(dir);
ctx.addLifecycleListener(new FixContextListener());

if (host == null) {
getHost().addChild(ctx);
} else {
host.addChild(ctx);
}
return ctx;
}

@Deprecated
public Context addWebapp(Host host, String contextPath, String name, String docBase) {
silence(host, contextPath);

Context ctx = createContext(host, contextPath);
ctx.setPath(contextPath);
ctx.setDocBase(docBase);

ctx.addLifecycleListener(new DefaultWebXmlListener());
ctx.setConfigFile(getWebappConfigFile(docBase, contextPath));

ContextConfig ctxCfg = new ContextConfig();
ctx.addLifecycleListener(ctxCfg);

// prevent it from looking ( if it finds one - it'll have dup error )
ctxCfg.setDefaultWebXml(noDefaultWebXmlPath());

if (host == null) {
getHost().addChild(ctx);
} else {
host.addChild(ctx);
}

return ctx;
}

开始以为addWebapp()过时了,其实不然,这个方法可以帮我们创建一个默认的web.xml文件,而addContext()没有,这是报404错误的原因,想想也是,貌似servlet 3.0之后可以不用web.xml,用注解来替代,过时应该说这个原因吧。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: