嵌入式Tomcat
2014-04-28 22:38
225 查看
下面为嵌入使用Tomcat的示例代码:
import java.net.URL; import org.apache.catalina.Context; import org.apache.catalina.core.AprLifecycleListener; import org.apache.catalina.core.StandardServer; import org.apache.catalina.deploy.FilterDef; import org.apache.catalina.deploy.FilterMap; import org.apache.catalina.startup.Tomcat; import org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter; import com.beust.jcommander.JCommander; import com.google.inject.Guice; import com.google.inject.Inject; import com.google.inject.Injector; import com.google.inject.servlet.GuiceFilter; public class WebServer { private final FrontendSettings webServerSettings; private final GuiceListener guiceListener; private final Tomcat tomcat; @Inject public WebServer( FrontendSettings webServerSettings, GuiceListener guiceListener) { this.webServerSettings = webServerSettings; this.guiceListener = guiceListener; this.tomcat = new Tomcat(); } private FilterDef createFilterDef(String filterName, String filterClass) { FilterDef filterDef = new FilterDef(); filterDef.setFilterName(filterName); filterDef.setFilterClass(filterClass); return filterDef; } private FilterMap createFilterMap(String filterName, String urlPattern) { FilterMap filterMap = new FilterMap(); filterMap.setFilterName(filterName); filterMap.addURLPattern(urlPattern); return filterMap; } public void run() throws Exception { String appBase = "."; tomcat.setPort(webServerSettings.getPort()); tomcat.setBaseDir("webapp"); tomcat.getHost().setAppBase(appBase); String contextPath = "/"; // Add AprLifecycleListener to give native speed boost // sudo apt-get install libtcnative-1 StandardServer server = (StandardServer)tomcat.getServer(); AprLifecycleListener listener = new AprLifecycleListener(); server.addLifecycleListener(listener); Context context = tomcat.addWebapp(contextPath, appBase); context.addFilterDef(createFilterDef("guice", GuiceFilter.class.getName())); FilterDef struts2FilterDef = createFilterDef("struts2", StrutsPrepareAndExecuteFilter.class.getName()); struts2FilterDef.addInitParameter("struts.devMode", Boolean.toString(webServerSettings.isDevModeEnabled())); context.addFilterDef(struts2FilterDef); context.addFilterMap(createFilterMap("guice", "/*")); context.addFilterMap(createFilterMap("struts2", "/*")); tomcat.start(); tomcat.getServer().await(); } public static void main(String[] args) throws Exception { FrontendSettings webServerSettings = new FrontendSettings(); new JCommander(webServerSettings, args); Guice.createInjector(new FrontendModule(webServerSettings)); Injector injector = Guice.createInjector(); WebServer server = injector.getInstance(WebServer.class); server.run(); } }
相关文章推荐
- 整合Juddi,Derby和Tomcat(嵌入式)
- Java与Flex学习笔记(7)----将Spring与Flex整合(基于嵌入式tomcat)(2012-07-24 更新)
- 嵌入式Tomcat Web服务器的使用
- 在pom.xml文件中配置嵌入式tomcat运行j2ee项目
- 启动嵌入式Tomcat
- 使用嵌入式Tomcat简化程序调试
- 启动嵌入式Tomcat
- maven中tomcat和jetty嵌入式插件设置虚拟目录.
- 使用嵌入式 Tomcat 简化程序调试
- 在tomcat 6中使用嵌入式Jboss运行Seam registration的例子
- 使用嵌入式tomcat启动web项目
- 嵌入式Tomcat的实现
- 使用embeded tomcat进行嵌入式javaee开发-启动tomcat
- 嵌入式tomcat服务代码实现
- 一.配置简单的嵌入式tomcat和jetty
- 一.配置简单的嵌入式tomcat和jetty
- 嵌入式jetty flex blazeds spring 程序讨论(tomcat)
- gradle中使用嵌入式(embedded) tomcat, debug 启动
- 嵌入式(embed)Tomcat
- Tomcat嵌入式启动