`
jiasudu1649
  • 浏览: 710629 次
  • 性别: 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
分享到:
评论

相关推荐

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

    嵌入式Tomcat运行Tomcat mvn clean package 然后sh output/bin/run浏览至: http://localhost:8080/hi/hello

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

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

    Embedded-Tomcat:WAR 中的 Tomcat 示例

    嵌入式Tomcat WAR 中的 Tomcat 示例

    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() . ...

    spring-boot-web-ecc

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

    tomcat-redis-session-8.5.5.0

    见我们的嵌入式示例 添加tomcat-redis-session作为maven依赖关系: 依赖关系 &gt; &lt; groupId &gt; com.github.jkutner &lt;/ groupId &gt; &lt; artifactId &gt; tomcat-redis-session &lt; version &gt; 8.5.5.0 用它: redis...

    jetty嵌入式服务器必须的jar包

    jetty嵌入式服务器开发所必须的jar包,本人使用jetty版本为6.1.3,jar包总数为9个,来自jetty:commons-el-1.0.jar,...(以上包可以使用相同的包替代,不一定必须来自jetty或者tomcat)其中JettyServer.java为示例代码

    devcenter-embedded-tomcat

    使用嵌入式Tomcat创建Java Web应用程序本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。先决条件基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java Web...

    embeddedTomcat

    使用嵌入式Tomcat创建Java Web应用程序本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。先决条件基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java Web...

    sample-logging-microservice:将消息记录到 mongodb 的示例日志服务

    服务使用Spring和Spring Boot来实现, Spring Boot在打包和部署方面提供了非常好的特性,它在嵌入式tomcat服务器的支持下将整个服务打包成一个可运行的jar文件。 JAX-RS用于将服务端点公开为 REST。 MongoDB用于...

    Java-Heroku-App-Test

    使用嵌入式Tomcat创建Java Web应用程序 本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。 先决条件 基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java ...

    ContesterHeroku

    使用嵌入式Tomcat创建Java Web应用程序 本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。 先决条件 基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java ...

    spring-webapp-no-xml:一个简单的 Spring webapp 项目,它使用纯 Java 配置 (no-xml) 演示 Spring 配置

    建立战争mvn package - 构建一个 war 文件,例如target/spring-webapp-no-xml.war运行示例mvn tomcat7:run - 在嵌入式 Tomcat7 中运行应用程序,如pom.xml所指定,或将target\spring-webapp-no-xml.war到正在运行的 ...

    Embed-Sample-1:轻松开始嵌入式应用程序开发的代码示例

    Tradeshift 第三方应用演示 这是一个演示应用程序,用于演示 Tradeshift 的 API 平台和 Ouath 2,用于调用常见 API 方法的简单可嵌入应用程序。 这个演示是用 Node.js 编写的。 有关在 Tradeshift 平台上构建应用...

    物联网示例,WEBSOCKET丰富案例

    1. Websocket 编程,包括基于Tomcat8的文本和二进制读写,和浏览器端的编程 2. 提供贪吃蛇案例,包括服务端程序和网页端,服务端是控制蛇运动方向的 3. 提供嵌入式端能过Websocket控制灯亮度,嵌入式代码另外上传

    parcial2_analisis

    只需以mvn clean tomcat7:run身份运行嵌入式Tomcat服务器,即可在上测试该应用程序。 执照 该示例应用程序及其关联的源代码全部按照以下许可条款提供。 Copyright (C) 2015 Permission is hereby granted, free of...

Global site tag (gtag.js) - Google Analytics