参考: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;
}
}
就这些了,如果哪位朋友知道如何封装较为复杂的应用,麻烦留言告诉我下,或者给个链接也可以,谢谢!
分享到:
相关推荐
内嵌式Tomcat是开发Java Web应用时常用的一种方式,它允许我们将Tomcat服务器与应用程序打包在一起,无需单独部署到外部服务器。这种方式尤其适合于快速开发、测试和演示,因为它简化了部署流程,并且便于自动化构建...
内嵌式Tomcat的优势在于,它允许开发者直接在Java应用程序内部启动和管理Tomcat服务器,无需额外的配置步骤或独立服务。这种方式特别适合于微服务架构和持续集成/持续部署(CI/CD)场景,使得测试、调试和部署变得更加...
内嵌Tomcat指的是在Java应用程序中直接集成Tomcat服务器,而不是作为一个独立的服务运行。这种方式常用于开发、测试或部署轻量级应用,因为不需要单独启动和管理Tomcat进程。本实例代码提供了关于如何在Java项目中...
【描述】"java使用内嵌Tomcat开发javaWeb项目源代码"表明这个项目使用Java语言,通过内嵌Tomcat容器来运行和测试Java Web应用程序。内嵌Tomcat意味着Tomcat服务器是作为项目的一部分直接集成的,而不是作为一个独立...
在Java中,Spring Boot是一种流行的应用程序框架,它简化了创建独立的、生产级别的基于Spring的应用程序。Spring Boot的一个显著特性是它可以自动配置Spring框架,使得开发过程更为高效。此外,Spring Boot集成了...
Embeded Tomcat是指将Tomcat服务器作为Java应用程序的一部分,在代码中直接初始化和管理,而不是作为一个独立的服务运行。这为开发者提供了灵活性,可以在构建和测试阶段轻松地集成和部署Web应用。 要使用embeded ...
4. **上下文路径**:内嵌Tomcat允许指定应用的上下文路径,即Web应用在URL中的位置。这可以通过`Tomcat.addWebapp()`方法或在配置文件中指定。 5. **资源加载**:理解如何配置Tomcat以正确加载Web应用的静态资源...
SpringMVC是一款强大的Java web开发框架,用于构建高效、可维护的Web...通过实践这些内容,你不仅可以理解Spring MVC的架构,还能熟练运用IOC和AOP解决实际问题,同时掌握如何在应用中内嵌Tomcat服务器,提升开发效率。
HSQLDB是一款轻量级、开源的关系型数据库管理系统,常用于开发测试环境,尤其是与Java应用程序结合时,因为其可以方便地以内存或磁盘模式运行。 首先,我们需要了解HSQLDB的基本概念。它是一个纯Java编写的数据库,...
Tomcat内嵌版是Apache Tomcat服务器的一个特殊版本,可以直接集成到Java应用程序中,无需独立部署。它的优点包括: 1. **便捷部署**:可以将Tomcat直接打包到应用中,简化了部署流程。 2. **独立运行**:无需单独...
嵌入Tomcat是一种将Apache Tomcat服务器直接集成到Java应用程序中的技术,这使得应用程序能够独立于传统的Web服务器环境运行,增强了应用的灵活性和可移植性。本文将深入探讨嵌入Tomcat的基本概念、优势以及其实现...
首先,我们需要在pom.xml文件中添加Exclude依赖项,以便去除内嵌Tomcat。我们可以在spring-boot-starter-web依赖项中添加以下代码: ```xml <groupId>org.springframework.boot <artifactId>spring-boot-starter...
Tomcat安装简单,配置灵活,是许多小型到中型企业首选的Java应用服务器。下载并解压Tomcat后,需要将GeoServer的WAR文件(Web应用程序归档文件)放入Tomcat的webapps目录下,Tomcat会自动将其展开并启动服务。 4. *...
在 IntelliJ IDEA 中,需要选择发布文件格式为“Artifact”,然后将网站发布到 Tomcat 目录里,最后发送 Tomcat 启动命令,以实现自动启动 Web 程序的功能。 知识点五:自动启动 Web 程序 在 IntelliJ IDEA 中,...
嵌入式Tomcat是Java开发中的一个重要概念,它允许开发者将Apache Tomcat服务器直接集成到应用程序中,而不是作为独立的服务运行。这种方式简化了部署流程,特别是在进行本地开发和测试时,能够提高效率并减少资源...
在Java Web开发中,Tomcat是一个非常流行的开源应用服务器,它用于部署和运行Servlet和JSP应用程序。Servlet是Java提供的一种用于扩展服务器功能的接口,它使得开发者可以在服务器端编写动态网页。本资源包主要围绕...
默认情况下,SpringBoot的内嵌Tomcat监听8080端口,但这个端口可以通过配置文件(application.properties或application.yml)进行更改。 Tomcat 9.0.44的jar包包含了服务器运行所需的所有组件,如servlet容器、JSP...
它内嵌了Tomcat服务器,支持自动配置,使得开发者可以快速启动和运行项目。在本项目中,Spring Boot被用来构建后端服务,提供RESTful API接口,供微信小程序调用。 3. **Spring MVC**: 作为Spring Boot的一部分,...
SpringBoot是一种轻量级的Java框架,它简化了创建独立的、生产级别的基于Spring的应用程序。这个Demo项目展示了如何在较旧的环境,如JDK 1.6和Tomcat 6上运行SpringBoot 1.5.6的Web程序。尽管SpringBoot通常建议使用...