Tomcat addWebapp()方法和addContext()方法
2016-07-16 09:34
323 查看
在做毕业设计,打算搞一个内嵌的tomcat,参考别人的代码已经看源码,终于把tomcat给启动起来了,但是访问项目出现了404错误,检查之后发现我用的是addContext()方法添加一个web应用,除此之外有一个addWebapp()方法也是返回一个context。
开始以为addWebapp()过时了,其实不然,这个方法可以帮我们创建一个默认的web.xml文件,而addContext()没有,这是报404错误的原因,想想也是,貌似servlet 3.0之后可以不用web.xml,用注解来替代,过时应该说这个原因吧。
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,用注解来替代,过时应该说这个原因吧。
相关文章推荐
- javaEE:day1-验证码生成技术和启动tomcat的四种方式
- 网站tomcat配置
- 安装与配置Tomcat8
- 把tomcat服务添加进系统服务中
- Tomcat源码分析--总体架构
- Tomcat9源码编译及导入Eclipse
- IntelliJ IDEA 15 配置 Tomcat8
- IntelliJ IDEA 15 配置 Tomcat8
- GET 与 POST,Handler,JSON 解析,Tomcat,导入第三方包 SmartImageView
- 强制关闭tomcat
- mac平台安装配置TomCat
- linux下实现tomcat6.0的单机多实例
- Linux下项目发布tomcat常用命令操作
- Tomcat catalina.sh 优化
- Tomcat server.xml优化
- myeclipse下启动tomcat报错:org/apache/catalina/startup/Bootstrap
- Tomcat log4j配置
- ubunut(14.04)系统开机后,tomcat服务器自动启动
- 切分 Tomcat 的 catalina.out 文件,解决日志文件过大的问题
- tomcat发布项目的四种方法