嵌入式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";
}
}
}
分享到:
相关推荐
嵌入式Tomcat运行Tomcat mvn clean package 然后sh output/bin/run浏览至: http://localhost:8080/hi/hello
基于Maven原型并添加嵌入式Tomcat的最小示例。 最初的来源是Maven原型: 另外,嵌入式Tomcat 7代码来自: 这里真的没有什么新东西,主要是混音,然后是一个琐碎的服务,它确实在等待……计算。 为此,您需要...
嵌入式Tomcat WAR 中的 Tomcat 示例
这是部署到 Heroku 的基本 Servlet 示例。 索引页面接受一个输入(应该是下载链接)。 下载链接经过验证,应该将文件下载到 Heroku 临时文件夹。 下载完成后,会给出文件的下载链接。 然后用户可以从 Heroku ...
servlettester 嵌入式 tomcat 带有嵌入式 tomcat 的 HTTP servlet 运行程序和测试程序。 它使用 Java8 的 lambda。测试代码示例带回调 TomcatServletTester . runServlet((req, resp) - > { resp . getWriter() . ...
嵌入式Tomcat 此示例显示如何使用 Tomcat 构建和打包可运行的 jar。 mvn clean package -P tomcat 嵌入式码头 这个例子展示了如何使用 Jetty 构建和打包一个可运行的 jar。 mvn clean package -P jetty 嵌入式...
见我们的嵌入式示例 添加tomcat-redis-session作为maven依赖关系: 依赖关系 > < groupId > com.github.jkutner </ groupId > < artifactId > tomcat-redis-session < version > 8.5.5.0 用它: redis...
jetty嵌入式服务器开发所必须的jar包,本人使用jetty版本为6.1.3,jar包总数为9个,来自jetty:commons-el-1.0.jar,...(以上包可以使用相同的包替代,不一定必须来自jetty或者tomcat)其中JettyServer.java为示例代码
使用嵌入式Tomcat创建Java Web应用程序本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。先决条件基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java Web...
使用嵌入式Tomcat创建Java Web应用程序本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。先决条件基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java Web...
服务使用Spring和Spring Boot来实现, Spring Boot在打包和部署方面提供了非常好的特性,它在嵌入式tomcat服务器的支持下将整个服务打包成一个可运行的jar文件。 JAX-RS用于将服务端点公开为 REST。 MongoDB用于...
使用嵌入式Tomcat创建Java Web应用程序 本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。 先决条件 基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java ...
使用嵌入式Tomcat创建Java Web应用程序 本教程将向您展示如何使用嵌入式Tomcat创建一个简单的Java Web应用程序。 先决条件 基本的Java知识,包括JVM和Maven的安装版本。 基本的Git知识,包括Git的安装版本。 Java ...
建立战争mvn package - 构建一个 war 文件,例如target/spring-webapp-no-xml.war运行示例mvn tomcat7:run - 在嵌入式 Tomcat7 中运行应用程序,如pom.xml所指定,或将target\spring-webapp-no-xml.war到正在运行的 ...
Tradeshift 第三方应用演示 这是一个演示应用程序,用于演示 Tradeshift 的 API 平台和 Ouath 2,用于调用常见 API 方法的简单可嵌入应用程序。 这个演示是用 Node.js 编写的。 有关在 Tradeshift 平台上构建应用...
1. Websocket 编程,包括基于Tomcat8的文本和二进制读写,和浏览器端的编程 2. 提供贪吃蛇案例,包括服务端程序和网页端,服务端是控制蛇运动方向的 3. 提供嵌入式端能过Websocket控制灯亮度,嵌入式代码另外上传
只需以mvn clean tomcat7:run身份运行嵌入式Tomcat服务器,即可在上测试该应用程序。 执照 该示例应用程序及其关联的源代码全部按照以下许可条款提供。 Copyright (C) 2015 Permission is hereby granted, free of...