`
clearity
  • 浏览: 36890 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

嵌入式Tomcat

 
阅读更多

下面为嵌入使用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();
  }

}

 

分享到:
评论

相关推荐

    嵌入式tomcat虚拟目录服务器应用程序源代码

    嵌入式Tomcat虚拟目录服务器应用程序源代码是一个用于创建和管理虚拟目录的高效解决方案,它无需用户手动安装完整的Apache Tomcat服务器。这个程序的核心在于它能够集成到Java虚拟机(JVM)中,使得开发者或者系统...

    嵌入式tomcat

    嵌入式Tomcat是Java开发中的一个重要概念,它允许开发者将Apache Tomcat服务器直接集成到应用程序中,而不是作为独立的服务运行。这种方式简化了部署流程,特别是在进行本地开发和测试时,能够提高效率并减少资源...

    手写嵌入式Tomcat

    在IT行业中,嵌入式Tomcat是一个非常重要的概念,它主要应用于那些需要在有限资源的设备上运行Java Web应用程序的场景。嵌入式Tomcat允许开发者将Tomcat服务器集成到他们的应用中,而不是作为一个独立的服务运行。这...

    嵌入式Tomcat5.5

    嵌入式Tomcat5.5是一个专为J2EE-WEB开发设计的轻量级服务器,它简化了开发过程并提供了高效能。Tomcat作为Apache软件基金会的项目,是Java Servlet和JavaServer Pages(JSP)技术的主要实现,是开源且免费的Web应用...

    嵌入式tomcat7-jar

    基于网络上嵌入式Tomcat资源较少,而我也正好有此资源,因此就共享该嵌入式Tomcat资源,以供大家学习和交流。

    嵌入式tomcat,带例子。

    嵌入式Tomcat是Apache Tomcat服务器的一种轻量级实现,它被设计为可以直接集成到应用程序中,而无需单独部署和管理服务器实例。这个压缩包文件"tomcat-embed"很可能是包含了用于嵌入式Tomcat的相关库和配置文件,...

    java嵌入式tomcat[借鉴].pdf

    Java 嵌入式 Tomcat 配置详细说明 Tomcat 是一个流行的 Java Web 服务器,可以作为独立的服务器运行,也可以嵌入到 Java 应用程序中。在本文中,我们将详细介绍如何在 Java 项目中嵌入 Tomcat 服务器,并配置相关...

    03-嵌入式Tomcat1

    在IT行业中,嵌入式Tomcat是一个非常关键的技术点,特别是在Spring Boot框架中。Spring Boot致力于简化Java应用程序的开发,而嵌入式Tomcat作为其默认的Web服务器,使得开发者无需进行复杂的部署配置就能快速运行Web...

    图文并茂、手把手教你怎么配置嵌入式Tomcat

    这是本人发表在CSDN上的文章资源,欢迎下载,具体可以浏览此页面http://blog.csdn.net/youqishini/article/details/6969769,本工程项目里有所需要的jar文件。配置文件等!

    嵌入式tomcat经典示例

    嵌入式tomcat完整示例 博文链接:https://jiasudu.iteye.com/blog/160564

    Spring 5 MVC演示应用程序,具有嵌入式Tomcat和Jaeger Tracing(不带Spring Boot).zip

    【标题】中的“Spring 5 MVC演示应用程序,具有嵌入式Tomcat和Jaeger Tracing”揭示了这个项目的核心组成部分,让我们深入理解这些关键概念。 **Spring 5 MVC框架** Spring MVC是Spring框架的一个模块,专门用于...

    嵌入式tomcat依赖jar包8.5.29(包括tomcat-juli、tomcat-jdbc、tomcat-embed...)

    嵌入式tomcat依赖jar包8.5.29版本(其中包括tomcat-juli-8.5.29、tomcat-jdbc-8.5.29、tomcat-embed-websocket-8.5.29、tomcat-embed-el-8.5.29、tomcat-embed-core-8.5.29、tomcat-annotations-api-8.5.29)

    Modular-Java-Jersey-Vue:Moduler Java,嵌入式Tomcat,Jersey,Vue,Restfull WebApp

    模块化Java,嵌入式Tomcat,Fat Jar,Vue JS 该应用程序演示了面向服务的RESTfull应用程序的各个部分。 演示(Heroku托管) 大约需要2-3分钟才能启动实例 技术栈 零件 技术 后端郎 Java 11(带有模块) 宁静的...

    apachecxf_embedded_tomcat:基于Maven原型并添加嵌入式Tomcat的最小示例

    基于Maven原型并添加嵌入式Tomcat的最小示例。 最初的来源是Maven原型: 另外,嵌入式Tomcat 7代码来自: 这里真的没有什么新东西,主要是混音,然后是一个琐碎的服务,它确实在等待……计算。 为此,您需要...

Global site tag (gtag.js) - Google Analytics