据我了解,3.0 servlet 容器应该扫描类路径以查找 ServletContainerInitializer 接口(即springs)的实现。随后这应该调用WebApplicationInitializer实现的 onStartup 方法。
伟大的。惊人的。
现在我想构建一个 jar 文件,它将启动一个嵌入式 3.0 servlet 容器(jetty 8 或 tomcat 7)并执行此操作。我看到很多关于如何构建战争文件的例子。但是我如何以编程方式做到这一点?
据我了解,3.0 servlet 容器应该扫描类路径以查找 ServletContainerInitializer 接口(即springs)的实现。随后这应该调用WebApplicationInitializer实现的 onStartup 方法。
伟大的。惊人的。
现在我想构建一个 jar 文件,它将启动一个嵌入式 3.0 servlet 容器(jetty 8 或 tomcat 7)并执行此操作。我看到很多关于如何构建战争文件的例子。但是我如何以编程方式做到这一点?
如果您不想构建 .war 文件,则需要自己调用WebApplicationInitializer
。onStartup(ServletContext)
您如何获得 servlet 上下文将取决于您使用的容器。
在 Tomcat 中:
Tomcat tomcat = new Tomcat();
// skipping a few steps
Context ctx = tomcat.addContext(contextPath, baseDir);
ServletContext sc = ctx.getServletContext();