【问题标题】:Embedded Servlet 3.0 container to use ServletContainerInitializer instead of web.xml嵌入式 Servlet 3.0 容器使用 ServletContainerInitializer 而不是 web.xml
【发布时间】:2012-10-05 18:00:08
【问题描述】:
据我了解,3.0 servlet 容器应该扫描类路径以查找 ServletContainerInitializer 接口的实现(即springs)。随后这应该调用WebApplicationInitializer 实现的onStartup 方法。
太好了。惊人的。
现在我想构建一个 jar 文件,它将启动一个嵌入式 3.0 servlet 容器(jetty 8 或 tomcat 7)并执行此操作。我看到很多关于如何构建战争文件的例子。但是我如何以编程方式做到这一点?
【问题讨论】:
标签:
java
spring-mvc
servlet-3.0
【解决方案1】:
如果您不想构建 .war 文件,您需要自己致电 WebApplicationInitializer 的 onStartup(ServletContext)。您如何获得 servlet 上下文将取决于您使用的容器。
在 Tomcat 中:
Tomcat tomcat = new Tomcat();
// skipping a few steps
Context ctx = tomcat.addContext(contextPath, baseDir);
ServletContext sc = ctx.getServletContext();