嵌入式Tomcat Web服务器的使用

  在运行web工程时,常常要频繁启动tomcat,使用嵌入式tomcat可以减少部分重复操作。

1、下载tomcat5.0.28embed.zip 解压文件夹复制到工程下。

  http://archive.apache.org/dist/tomcat/tomcat-5/v5.0.28/bin/jakarta-tomcat-5.0.28-embed.zip

2、源码实现

import java.io.File;
import javax.servlet.ServletException;
import org.apache.catalina.LifecycleException;
import org.apache.catalina.core.AprLifecycleListener;
import org.apache.catalina.core.StandardServer;
import org.apache.catalina.startup.Tomcat;
import org.apache.juli.logging.Log;
import org.apache.juli.logging.LogFactory;

public class WebStart {
    private final Log log = LogFactory.getLog(getClass());
    private static String CONTEXT_PATH = "";
    private static String PROJECT_PATH = System.getProperty("user.dir");// 工程物理的绝对路径
    private static String WEB_APP_PATH = PROJECT_PATH + File.separatorChar
            + "WebRoot";
    private static String CATALINA_HOME = PROJECT_PATH + "/Embedded/Tomcat";
    private Tomcat tomcat = new Tomcat();
    private int port;

    public WebStart(int port) {
        this.port = port;
    }

    public void start(){
        tomcat.setPort(port);
        tomcat.setBaseDir(CATALINA_HOME);
        tomcat.getHost().setAppBase(WEB_APP_PATH);
        try {
            StandardServer server = (StandardServer) tomcat.getServer();
            AprLifecycleListener listener = new AprLifecycleListener();
            server.addLifecycleListener(listener);
            tomcat.addWebapp(CONTEXT_PATH, WEB_APP_PATH);
        } catch (ServletException e) {
            e.printStackTrace();
            log.error(e.getMessage());
        }
        try {
            tomcat.start();
            log.info("Tomcat started success !");
            tomcat.getServer().await();
        } catch (LifecycleException e) {
            e.printStackTrace();
            log.error(e.getMessage());
        }
    }

    public void stop(){
        try {
            tomcat.stop();
            log.info("Tomcat has stoped !");
        } catch (LifecycleException e) {
            e.printStackTrace();
            log.error(e.getMessage());
        }
    }

    public void setPort(int port) {
        this.port = port;
    }

    public int getPort() {
        return this.port;
    }

    public static void main(String[] args){
        WebStart tomcat = new WebStart(8080);
        try {
            tomcat.start();
        } catch (Exception e) {
            System.out.println("Tomcat Start error !"+"\n"+e.toString());
        }
    }

}
时间: 2024-10-10 07:59:00

嵌入式Tomcat Web服务器的使用的相关文章

tomcat web服务器优化

tomcat主要作为中间件在架构中出现,目前我们使用LNMJ的架构,tomcat用来处理动态请求,处理速度快,但是占用资源大,这只懒猫,想要跑得快就要给条大鱼,否则会影响主机性能 下面简单介绍下这次优化的内容 按照CIS-Tomcat7最新基线标准进行中间件层面基线检测 注意:禁止root登陆项请谨慎操作,禁止登陆后root账号不能直接等 检查项1: tomcat进程运行权限检测 路径: /application/tomcat当前值: 0 `加固建议: 请创建低权限的账号运行tomcat` 检查

Java使用Jetty实现嵌入式Web服务器及Servlet容器

首先来介绍下 Jetty,根据 wiki 的介绍: Jetty 是一个纯粹的基于 Java 的网页服务器和 Java Servlet 容器.尽管网页服务器通常用来为人们呈现文档,但是 Jetty 通常在较大的软件框架中用于计算机与计算机之间的通信. Jetty 作为 Eclipse 基金会的一部分,是一个自由和开源项目.该网页服务器被用在 Apache ActiveMQ.Alfresco.Apache Geronimo.Apache Maven.Google App Engine.Eclipse

Web服务器(Apache)与Servlet容器(Tomcat)

之前一直比较迷惑Apache与Tomcat的关系,通过查询资料,有所了解,现记录于此. Apache与Tomcat 两者定位:Apache是HTTP Web服务器,Tomcat是Web容器. 有一个非常形象的比喻:Apache是一辆车,可以装载静态的物件(HTML静态网页等):但不能装动态的水(JSP.CGI等),要装水就需要桶(容器),当然桶也可以不放在车上而单独存放,则该容器即为Tomcat. 两者的主要区别: Apache是世界上最流行的Web服务器(其次是微软的IIS),可以处理浏览器的

世界第三大Web服务器-Nginx在嵌入式系统中应用(ARM处理器)

      本文作为老技术人对国庆(2014.10.01)的献礼,有限开放,属于本工作室5A级保密文件,不提供技术咨询: Nginx("Engine X")作为世界第三大Web服务器,如果能应用到嵌入式系统中应用中是多么美好的事情,如下将告诉你实现的可能, 实现(通过验证)最小硬件配置(300Mhz ARM9,128MB内存). 1. 交叉编译PCRE库,Nginx对PCRE库有依赖,PCRE(Perl Compatible Regular Expressions)是一个Perl库,包

keepalived+nginx+tomcat搭建高性能web服务器集群

使用keepalived+nginx+tomcat搭建高性能web服务器集群,系统采用centos6.9,前端用nginx做反向代理实现负载均衡,同时结合keepalived对nginx实现高可用,后端使用两台tomcat做动态jsp解析,实现了动静分离. 搭建环境 准备四台服务器 vip: 192.168.75.130master: 192.168.75.131 (安装nginx做反向代理实现负载匀衡,结合keepalived实现高可用)backup: 192.168.75.132 (同上)w

Web应用和Web服务器(Apache Tomcat)基本概念

Web服务器 Web应用提供用户通过网络访问资源(静态资源:html等/动态资源:jsp,jar)的服务.为了使用户能够访问到资源,程序开发者不仅需要开发资源文件,还需要开发Web服务器提供给用户访问资源的渠道.随着Web应用的流行,涌现出越来越多优秀的Web服务器,来帮助程序开发者减少工作量,使得程序开发者只专注于资源的提供.目前主流的Web服务器有Weblogic,Tomcat,WebSphere. 首先看一个没有Web服务器的资源如何能被用户访问: Tomcat和目录介绍 Tomcat本质

基于tomcat响应处理模型实现的高并发web服务器

在上一篇博客中,一个简单的AIOweb处理例子,可以看到AIO异步处理,依赖操作系统完成IO操作的Proactor处理模型确实很强大,可以是实现高并发,高响应服务器的不错选择,但是在tomcat中的connector的处理模型还依旧是基于NIO的处理,当然,我认为这可能会在以后的版本进行改进,但另一方面,我更认为AIO的负载控制方面的处理可能是比较难的,因为AIO api并没有提供我们对分配线程组的处理,而只是提供一个线程组,交给操作系统去解决io处理上的问题,所以,这可能会给需要复杂处理的负载

探秘Tomcat——从一个简陋的Web服务器开始

前言: 无论是之前所在实习单位小到一个三五个人做的项目,还是如今一个在做的百人以上的产品,一直都能看到tomcat的身影.工作中经常遇到的操作就是启动和关闭tomcat服务,或者修改了摸个java文件,编译该文件,将生成的class文件塞到tomcat目录下相应的jar包中去,以使其生效,但是也可以热部署,不需要这么繁琐的操作. 总之,一直以来都是习惯了tomcat的存在,没有深究tomcat的运行机制和原理,上一次对于tomcat源码的跃跃欲试还是去年的事儿了——<探秘Tomcat(一)——M

WEB服务器(Tomcat)

在小型的应用系统或有特殊需要的系统中,也可以使用一个免费的Web服务器: Tomcat,该服务器支持全部的JSP以及Servlet 规范, 下载 Tom 查看计算机上被占用端口号的情况: 使用Fport.exe 开发时: http://localhost:8080 实际使用时:使用80 修改安装文件下的conf文件夹下server.xml 将8080改为80端口. Tomcat的目录层次结构: