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

嵌入式tomcat经典示例

阅读更多
嵌入式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";
		}
	}

}


  • testtomcat.zip (3.1 MB)
  • 描述: 嵌入式tomcat完整示例
  • 下载次数: 535
分享到:
评论

相关推荐

    手写嵌入式Tomcat

    从提供的压缩包文件“cemb-tomcat”来看,这可能是一个示例项目或者一个用于学习嵌入式Tomcat的代码库。通过对这个文件的探索,可以更深入地理解嵌入式Tomcat的实现细节,并且可能包含了一些实用的示例代码和文档,...

    嵌入式tomcat

    在压缩包文件“嵌入式Tomcat”中,可能包含了示例代码、配置文件或者文档,这些资源可以帮助开发者更好地理解和实践嵌入式Tomcat的使用。通过对这些文件的深入学习和实践,可以进一步掌握如何在自己的项目中集成和...

    嵌入式tomcat,带例子。

    6. **示例代码**:描述中提到"带例子,简单易懂",可能压缩包中包含了一个简单的Java程序,演示了如何创建并启动嵌入式Tomcat。你可以查看这个例子,理解每个步骤的用途和作用。 嵌入式Tomcat的优点在于其小巧且...

    EmbeddedTomcat:嵌入式Tomcat工作示例。 Tomcat版本8.5.38。 谢谢Heroku

    嵌入式Tomcat是将Apache Tomcat服务器作为一个库来集成到Java应用程序中,而不是作为独立的服务运行。这种模式常用于创建轻量级的Web应用程序,尤其是对于开发、测试或者部署在本地环境的需求非常方便。标题提到的是...

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

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

    tomcat-embed5.5.28

    以下是一段简单的嵌入式Tomcat启动示例代码,展示了如何在Java应用中启动Tomcat: ```java import org.apache.catalina.startup.Tomcat; public class Main { public static void main(String[] args) throws ...

    tomcat7 在java程序中启动

    文档中提到的`org.apache.markt.HelloWorld`是一个嵌入式Tomcat的简单示例,它展示了如何创建一个嵌入式Tomcat服务器并部署一个简单的Servlet。这个例子中,`Tomcat`类是核心,通过实例化这个类并进行适当的配置后,...

    嵌入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开发-启动tomcat

    本文将深入探讨如何使用embeded Tomcat进行嵌入式JavaEE开发,并详细解释启动过程。 首先,理解embeded Tomcat的概念。Embeded Tomcat是指将Tomcat服务器作为Java应用程序的一部分,在代码中直接初始化和管理,而...

    Embedded-Tomcat:WAR 中的 Tomcat 示例

    "Embedded-Tomcat-master"这个文件名可能是指一个包含嵌入式Tomcat示例代码的项目。在这个项目中,你可能会找到如何配置和使用嵌入式Tomcat的详细步骤,包括如何加载WAR文件,如何处理HTTP请求,以及如何设置日志和...

    Servlets:使用嵌入式 Tomcat 并部署在 Heroku 中的 Servlet 示例

    这是部署到 Heroku 的基本 Servlet 示例。 索引页面接受一个输入(应该是下载链接)。 下载链接经过验证,应该将文件下载到 Heroku 临时文件夹。 下载完成后,会给出文件的下载链接。 然后用户可以从 Heroku ...

    servlettester-embedded-tomcat:带有嵌入式 tomcat 的 HTTP servlet 运行程序和测试程序。 它使用 Java8 的 lambda

    servlettester 嵌入式 tomcat 带有嵌入式 tomcat 的 HTTP servlet 运行程序和测试程序。 它使用 Java8 的 lambda。测试代码示例带回调 TomcatServletTester . runServlet((req, resp) - &gt; { resp . getWriter() . ...

    skeleton-embedded-tomcat:带有弹簧靴的嵌入式tomcat的骨架项目。 它只有一个基本的休息API

    2. **嵌入式Tomcat**: Spring Boot允许开发者选择不同的内嵌式Web服务器,其中Tomcat是最常见的一种。内嵌式Tomcat意味着Tomcat服务器直接作为应用程序的一部分运行,无需单独部署到外部服务器。这极大地简化了开发...

    prueba-tomcat-embed:嵌入了Web servlet和jsp的tomcat的示例

    要运行这个嵌入式Tomcat示例,你需要安装Java开发工具(JDK)和Maven。然后,可以使用Maven的`mvn clean install`命令来编译和打包项目,最后执行`mvn tomcat7:run`或`mvn tomcat9:run`(根据你使用的Tomcat版本)来...

    gradle-tomcat-plugin-0.9.8.zip

    当这两者结合,便催生了`gradle-tomcat-plugin`,一个允许开发者在Gradle构建流程中直接部署到嵌入式Tomcat的插件。本文将深入探讨这个插件的使用方法、功能特性以及实际应用。 ### 一、Gradle Tomcat 插件介绍 `...

    tomcat embedded + sqlite

    标题 "Tomcat Embedded + SQLite" 暗示了一个关于如何在嵌入式Tomcat服务器中集成SQLite数据库的技术主题。这通常涉及到在Java应用程序中使用轻量级数据库管理系统SQLite,以便在没有传统数据库服务器的情况下运行。...

    spring-boot-web-ecc

    嵌入式Tomcat 此示例显示如何使用 Tomcat 构建和打包可运行的 jar。 mvn clean package -P tomcat 嵌入式码头 这个例子展示了如何使用 Jetty 构建和打包一个可运行的 jar。 mvn clean package -P jetty 嵌入式...

Global site tag (gtag.js) - Google Analytics