嵌入式tomcat经典示例
(由网友--开源狂人提供)
package org.demo.common;
import org.hzy.demo.core.TomcatServer;
public class WebStart {
public static void main(String[] args) throws Exception {
/*
* Server server = new Server();
* SelectChannelConnector connector = new SelectChannelConnector();
* connector.setAcceptQueueSize(8); connector.setPort(80);
* server.setConnectors(new Connector[] { connector }); Context context =
* new WebAppContext("./WebRoot", "/"); server.addHandler(context);
* server.start(); server.join();
*/
new TomcatServer().start();
}
package org.hzy.demo.core;
import org.apache.catalina.Context;
import org.apache.catalina.Engine;
import org.apache.catalina.Host;
import org.apache.catalina.connector.Connector;
import org.apache.catalina.startup.Embedded;
public abstract class BaseWebServerEmbed{
private static final int DEFAULT_PORT = 80;
private Embedded tomcat;
protected BaseWebServerEmbed() {
initEmbedded();
initShutdownHook();
}
protected abstract String[] getContextsAbsolutePath();
protected abstract String[] getContextsMappingPath();
protected abstract String getTomcatPath();
protected int getPort() {
return DEFAULT_PORT;
}
public void start() {
try {
long startTime = System.currentTimeMillis();
tomcat.start();
System.err.println("Embedded Tomcat started in "
+ (System.currentTimeMillis() - startTime) + " ms.");
} catch (Exception e) {
e.printStackTrace();
}
}
private void initEmbedded() {
tomcat = new Embedded();
tomcat.setCatalinaBase(getTomcatPath());
Host host = tomcat.createHost("127.0.0.1", tomcat.getCatalinaHome()
+ "/webapps");
String[] contexts = getContextsMappingPath();
String[] contextsPath = getContextsAbsolutePath();
Context context = null;
for (int i = 0; i < contexts.length; ++i) {
context = tomcat.createContext(contexts[i], contextsPath[i]);
host.addChild(context);
}
Engine engine = tomcat.createEngine();
engine.setName("WEB_SERVER");
engine.addChild(host);
engine.setDefaultHost(host.getName());
tomcat.addEngine(engine);
// 只能本机访问
//Connector connector = tomcat.createConnector("127.0.0.1", getPort(),false);
// 可从其它机器访问
Connector connector = tomcat.createConnector((java.net.InetAddress) null, getPort(), false);
connector.setURIEncoding("UTF-8");
tomcat.addConnector(connector);
}
private void initShutdownHook() {
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
stopTomcat();
}
});
}
private void stopTomcat() {
try {
tomcat.stop();
} catch (Exception e) {
e.printStackTrace();
}
}
}
package org.hzy.demo.core;
public class TomcatServer extends BaseWebServerEmbed {
protected String[] getContextsAbsolutePath() {
return new String[] { getSingleContextAbsolutePath() };
}
private String getSingleContextAbsolutePath() {
String path = System.getProperty("user.dir") + "/WebRoot";
return path;
}
protected String[] getContextsMappingPath() {
return new String[] { "/" };
}
protected String getTomcatPath() {
try {
return System.getProperty("user.dir") + "/webserver";
} catch (Exception e) {
return "/D:\\tomcat-embed";
}
}
}
分享到:
相关推荐
从提供的压缩包文件“cemb-tomcat”来看,这可能是一个示例项目或者一个用于学习嵌入式Tomcat的代码库。通过对这个文件的探索,可以更深入地理解嵌入式Tomcat的实现细节,并且可能包含了一些实用的示例代码和文档,...
在压缩包文件“嵌入式Tomcat”中,可能包含了示例代码、配置文件或者文档,这些资源可以帮助开发者更好地理解和实践嵌入式Tomcat的使用。通过对这些文件的深入学习和实践,可以进一步掌握如何在自己的项目中集成和...
6. **示例代码**:描述中提到"带例子,简单易懂",可能压缩包中包含了一个简单的Java程序,演示了如何创建并启动嵌入式Tomcat。你可以查看这个例子,理解每个步骤的用途和作用。 嵌入式Tomcat的优点在于其小巧且...
嵌入式Tomcat是将Apache Tomcat服务器作为一个库来集成到Java应用程序中,而不是作为独立的服务运行。这种模式常用于创建轻量级的Web应用程序,尤其是对于开发、测试或者部署在本地环境的需求非常方便。标题提到的是...
基于Maven原型并添加嵌入式Tomcat的最小示例。 最初的来源是Maven原型: 另外,嵌入式Tomcat 7代码来自: 这里真的没有什么新东西,主要是混音,然后是一个琐碎的服务,它确实在等待……计算。 为此,您需要...
以下是一段简单的嵌入式Tomcat启动示例代码,展示了如何在Java应用中启动Tomcat: ```java import org.apache.catalina.startup.Tomcat; public class Main { public static void main(String[] args) throws ...
文档中提到的`org.apache.markt.HelloWorld`是一个嵌入式Tomcat的简单示例,它展示了如何创建一个嵌入式Tomcat服务器并部署一个简单的Servlet。这个例子中,`Tomcat`类是核心,通过实例化这个类并进行适当的配置后,...
以下是一个创建嵌入式Tomcat的简单示例代码: ```java import java.io.File; import java.net.InetAddress; import java.net.UnknownHostException; import org.apache.catalina.Context; import org.apache....
本文将深入探讨如何使用embeded Tomcat进行嵌入式JavaEE开发,并详细解释启动过程。 首先,理解embeded Tomcat的概念。Embeded Tomcat是指将Tomcat服务器作为Java应用程序的一部分,在代码中直接初始化和管理,而...
"Embedded-Tomcat-master"这个文件名可能是指一个包含嵌入式Tomcat示例代码的项目。在这个项目中,你可能会找到如何配置和使用嵌入式Tomcat的详细步骤,包括如何加载WAR文件,如何处理HTTP请求,以及如何设置日志和...
这是部署到 Heroku 的基本 Servlet 示例。 索引页面接受一个输入(应该是下载链接)。 下载链接经过验证,应该将文件下载到 Heroku 临时文件夹。 下载完成后,会给出文件的下载链接。 然后用户可以从 Heroku ...
servlettester 嵌入式 tomcat 带有嵌入式 tomcat 的 HTTP servlet 运行程序和测试程序。 它使用 Java8 的 lambda。测试代码示例带回调 TomcatServletTester . runServlet((req, resp) - > { resp . getWriter() . ...
2. **嵌入式Tomcat**: Spring Boot允许开发者选择不同的内嵌式Web服务器,其中Tomcat是最常见的一种。内嵌式Tomcat意味着Tomcat服务器直接作为应用程序的一部分运行,无需单独部署到外部服务器。这极大地简化了开发...
要运行这个嵌入式Tomcat示例,你需要安装Java开发工具(JDK)和Maven。然后,可以使用Maven的`mvn clean install`命令来编译和打包项目,最后执行`mvn tomcat7:run`或`mvn tomcat9:run`(根据你使用的Tomcat版本)来...
当这两者结合,便催生了`gradle-tomcat-plugin`,一个允许开发者在Gradle构建流程中直接部署到嵌入式Tomcat的插件。本文将深入探讨这个插件的使用方法、功能特性以及实际应用。 ### 一、Gradle Tomcat 插件介绍 `...
标题 "Tomcat Embedded + SQLite" 暗示了一个关于如何在嵌入式Tomcat服务器中集成SQLite数据库的技术主题。这通常涉及到在Java应用程序中使用轻量级数据库管理系统SQLite,以便在没有传统数据库服务器的情况下运行。...
嵌入式Tomcat 此示例显示如何使用 Tomcat 构建和打包可运行的 jar。 mvn clean package -P tomcat 嵌入式码头 这个例子展示了如何使用 Jetty 构建和打包一个可运行的 jar。 mvn clean package -P jetty 嵌入式...