`
kungstriving
  • 浏览: 131870 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Java应用程序中内嵌Tomcat启动

    博客分类:
  • Java
阅读更多

参考:http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/startup/Embedded.html

有时候对于Tomcat的使用,需要内嵌在自己的应用程序中,由应用程序来控制Tomcat服务的启动、关闭等。这时,就可以通过Tomcat的startup包中提供的Embedded类来将Tomcat内嵌在你的应用程序中。这样的好处是,自己的应用程序的控制较好,而且从外部看来也不至于说只是一个Tomcat应用,看着可以更强大些(嘻嘻)

 

缺点:对于较为复杂的应用使用起来很是复杂,目前还没有弄明白。比如:设置了持久化参数、数据源连接等的就比较复杂。这时可以偷懒下,使用下面这个方法来内嵌Tomcat

public void start() {
		
		String command = "cmd.exe /c E:\\test\\apache-tomcat-5.5.27\\bin\\startup.bat";
		OSExecute.command(command);
	}
	
public void stop() {
		String command = "cmd.exe /c E:\\apache\\apache-tomcat-5.5.27\\bin\\shutdown.bat";
		OSExecute.command(command);
	}

 

呵呵,其实就是使用控制台的启动方法来启动的,如果你的应用系统不随源代码发布的话,这个还可以骗一下外行了。这样启动,需要设置CATALINA_HOME环境变量才可以。

 

接下来,使用Embedded方式内嵌Tomcat

 

/**
 * 通过API级别的包装,将Tomcat的启动封装在程序内部
 * 
 * 
 * @author kongxy
 * @version 0.1
 * 2009-5-25
 */
public class ServerManager {

	// TODO 移到配置文件中
	private final String tomcatHome = "E:\\test\\apache-tomcat-5.5.27";
	private Embedded tomcat;
	
	public void startServer() {

		// 设置Tomcat的工作目录,并启动Tomcat Server
		tomcat = createTomcat(tomcatHome);
		try {
			tomcat.start();
			System.out
					.println("---------- Tomcat Server start over. ------------");
			Lifecycle lc;
		} catch (Exception e) {
			e.printStackTrace();
		}

	}
	
	public void stopServer() {
		try {
			tomcat.stop();
			System.out.println("---------------- Tomcat Server stoped -----------------");
		} catch (LifecycleException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	/**
	 * entrypoint
	 * 
	 * @param args
	 */
	public static void main(String[] args) {

		ServerManager manager = new ServerManager();
		manager.startServer();
//		manager.stopServer();
	}

	private static Embedded createTomcat(String path) {
		// 创建嵌入式Tomcat Server的实例
		Embedded tomcat = new Embedded();
		// 设置Tomcat的工作目录
		tomcat.setCatalinaHome(path);
		// 产生Tomcat引擎
		Engine engine = tomcat.createEngine();
		engine.setName("Catalina");
		// 创建Host,设置Host的工作目录
		Host host = tomcat.createHost("localhost", tomcat.getCatalinaHome()
				+ "/webapps");
//		host.setAppBase("webapps");
		host.setAutoDeploy(true);
		Context odeContext = tomcat.createContext("/google", host.getAppBase() + "/google");
		
		host.addChild(odeContext);
		
		// 把Host加入Engine
		engine.addChild(host);
		engine.setDefaultHost(host.getName());
		
		tomcat.addEngine(engine);
		try {
			// Tomcat加入Connector,监听本地(127.0.0.1)的访问
			tomcat.addConnector(tomcat.createConnector(InetAddress
					.getByName("127.0.0.1"), 8080, false));
		} catch (UnknownHostException e) {
			System.err.println("绑定Tomcat Server到127.0.0.1:8080失败,请检查端口是否被占用.");
			e.printStackTrace();
			tomcat = null;
		}
		return tomcat;
	}
}

 

就这些了,如果哪位朋友知道如何封装较为复杂的应用,麻烦留言告诉我下,或者给个链接也可以,谢谢!

0
0
分享到:
评论
2 楼 kungstriving 2009-05-26  
jamesqiu 写道

你看看Eclipse的帮助系统就知道了, 2.x的时候用的tomcat, 最新的用的是jetty

你说的是Eclipse的JavaEE版本吗?
我没有找着哇,呵呵,能说详细些吗?谢谢
1 楼 jamesqiu 2009-05-26  
你看看Eclipse的帮助系统就知道了, 2.x的时候用的tomcat, 最新的用的是jetty

相关推荐

    内嵌式tomcat启动web工程

    内嵌式Tomcat是开发Java Web应用时常用的一种方式,它允许我们将Tomcat服务器与应用程序打包在一起,无需单独部署到外部服务器。这种方式尤其适合于快速开发、测试和演示,因为它简化了部署流程,并且便于自动化构建...

    Java内嵌式Tomcat-TomcatDemo

    内嵌式Tomcat的优势在于,它允许开发者直接在Java应用程序内部启动和管理Tomcat服务器,无需额外的配置步骤或独立服务。这种方式特别适合于微服务架构和持续集成/持续部署(CI/CD)场景,使得测试、调试和部署变得更加...

    内嵌tomcat实例代码.rar

    内嵌Tomcat指的是在Java应用程序中直接集成Tomcat服务器,而不是作为一个独立的服务运行。这种方式常用于开发、测试或部署轻量级应用,因为不需要单独启动和管理Tomcat进程。本实例代码提供了关于如何在Java项目中...

    java嵌入式tomcat

    Java嵌入式Tomcat是指将Apache Tomcat服务器集成到Java应用程序中,以便应用程序可以直接启动和控制Tomcat实例,而无需独立部署。这种方式常用于简化测试、微服务或轻量级应用部署。以下是对如何实现这一目标的详细...

    embed-tomcat-example.zip

    【描述】"java使用内嵌Tomcat开发javaWeb项目源代码"表明这个项目使用Java语言,通过内嵌Tomcat容器来运行和测试Java Web应用程序。内嵌Tomcat意味着Tomcat服务器是作为项目的一部分直接集成的,而不是作为一个独立...

    Java tomcat 用于启动idea

    在Java中,Spring Boot是一种流行的应用程序框架,它简化了创建独立的、生产级别的基于Spring的应用程序。Spring Boot的一个显著特性是它可以自动配置Spring框架,使得开发过程更为高效。此外,Spring Boot集成了...

    使用embeded tomcat进行嵌入式javaee开发-启动tomcat

    Embeded Tomcat是指将Tomcat服务器作为Java应用程序的一部分,在代码中直接初始化和管理,而不是作为一个独立的服务运行。这为开发者提供了灵活性,可以在构建和测试阶段轻松地集成和部署Web应用。 要使用embeded ...

    Tomcat7内嵌服务器

    4. **上下文路径**:内嵌Tomcat允许指定应用的上下文路径,即Web应用在URL中的位置。这可以通过`Tomcat.addWebapp()`方法或在配置文件中指定。 5. **资源加载**:理解如何配置Tomcat以正确加载Web应用的静态资源...

    SpringMVC精品资源--手写Spring,支持ioc(三级缓存)、aop(cglib)、内嵌tomcat.zip

    SpringMVC是一款强大的Java web开发框架,用于构建高效、可维护的Web...通过实践这些内容,你不仅可以理解Spring MVC的架构,还能熟练运用IOC和AOP解决实际问题,同时掌握如何在应用中内嵌Tomcat服务器,提升开发效率。

    hsqldb随tomcat启动

    HSQLDB是一款轻量级、开源的关系型数据库管理系统,常用于开发测试环境,尤其是与Java应用程序结合时,因为其可以方便地以内存或磁盘模式运行。 首先,我们需要了解HSQLDB的基本概念。它是一个纯Java编写的数据库,...

    jfina5.0.0+tomcat内嵌版演示demo

    Tomcat内嵌版是Apache Tomcat服务器的一个特殊版本,可以直接集成到Java应用程序中,无需独立部署。它的优点包括: 1. **便捷部署**:可以将Tomcat直接打包到应用中,简化了部署流程。 2. **独立运行**:无需单独...

    嵌入tomcat

    嵌入Tomcat是一种将Apache Tomcat服务器直接集成到Java应用程序中的技术,这使得应用程序能够独立于传统的Web服务器环境运行,增强了应用的灵活性和可移植性。本文将深入探讨嵌入Tomcat的基本概念、优势以及其实现...

    SpringBoot如何取消内置Tomcat启动并改用外接Tomcat

    首先,我们需要在pom.xml文件中添加Exclude依赖项,以便去除内嵌Tomcat。我们可以在spring-boot-starter-web依赖项中添加以下代码: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter...

    geoServer地图服务包(包含java包和tomcat服务器包).zip

    Tomcat安装简单,配置灵活,是许多小型到中型企业首选的Java应用服务器。下载并解压Tomcat后,需要将GeoServer的WAR文件(Web应用程序归档文件)放入Tomcat的webapps目录下,Tomcat会自动将其展开并启动服务。 4. *...

    Idea 配置Tomcat .docx

    在 IntelliJ IDEA 中,需要选择发布文件格式为“Artifact”,然后将网站发布到 Tomcat 目录里,最后发送 Tomcat 启动命令,以实现自动启动 Web 程序的功能。 知识点五:自动启动 Web 程序 在 IntelliJ IDEA 中,...

    嵌入式tomcat

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

    利用tomcat和servlet进行简单开发所需的jar包

    在Java Web开发中,Tomcat是一个非常流行的开源应用服务器,它用于部署和运行Servlet和JSP应用程序。Servlet是Java提供的一种用于扩展服务器功能的接口,它使得开发者可以在服务器端编写动态网页。本资源包主要围绕...

    tomcat9.0.44.zip

    默认情况下,SpringBoot的内嵌Tomcat监听8080端口,但这个端口可以通过配置文件(application.properties或application.yml)进行更改。 Tomcat 9.0.44的jar包包含了服务器运行所需的所有组件,如servlet容器、JSP...

    基于java ,springboot的记账账本微信小程序源码.zip

    它内嵌了Tomcat服务器,支持自动配置,使得开发者可以快速启动和运行项目。在本项目中,Spring Boot被用来构建后端服务,提供RESTful API接口,供微信小程序调用。 3. **Spring MVC**: 作为Spring Boot的一部分,...

    springboot web程序运行在jdk1.6、tomcat6的demo

    SpringBoot是一种轻量级的Java框架,它简化了创建独立的、生产级别的基于Spring的应用程序。这个Demo项目展示了如何在较旧的环境,如JDK 1.6和Tomcat 6上运行SpringBoot 1.5.6的Web程序。尽管SpringBoot通常建议使用...

Global site tag (gtag.js) - Google Analytics