内嵌式tomcat启动web工程
来源:互联网 发布:卓越工具箱淘宝客软件 编辑:程序博客网 时间:2024/05/23 19:17
1、内嵌式tomcat启动web工程,样例工程代码点击下载。
下载地址: 点击打开链接
2、tomcat 启动类
package com.test;import org.apache.catalina.Context;import org.apache.catalina.connector.Connector;import org.apache.catalina.startup.Tomcat;import org.apache.tomcat.util.scan.StandardJarScanner;import javax.servlet.ServletException;/** * 嵌入式tomcat web应用启动类, */public class TomcatBootstrapHelper { private static final char ENTER_CHAR = '\n'; /** * 默认端口 */ private static final int DEFAULT_PORT = 8080; private static final String DEFULT_ENV = "dev"; private int port = DEFAULT_PORT; /** * 是否启用servlet 3.0 支持,如果启用的话,就需要扫描jar包中是否有Servlet等annotation,这个会影响启动时间,默认不开启 */ private boolean isServlet3Enable = false; /** * 构建一个<code>TomcatBootstrapHelper.java</code> * * @param port 端口 * @param isServlet3Enable 是否启用servlet 3.0 * 支持,如果启用的话,就需要扫描jar包中是否有Servlet等annotation,这个会影响启动时间,默认不开启 * @param env 设置环境变量 spring.profiles.active */ public TomcatBootstrapHelper(int port, boolean isServlet3Enable, String env) { System.setProperty("spring.profiles.active", env); this.port = port; this.isServlet3Enable = isServlet3Enable; } /** * 构建一个<code>TomcatBootstrapHelper.java</code><br> * 环境变量spring.profiles.active=dev * * @param port 端口 * @param isServlet3Enable 是否启用servlet 3.0 * 支持,如果启用的话,就需要扫描jar包中是否有Servlet等annotation,这个会影响启动时间,默认不开启 */ public TomcatBootstrapHelper(int port, boolean isServlet3Enable) { this(port, isServlet3Enable, DEFULT_ENV); } /** * 构建一个<code>TomcatBootstrapHelper.java</code><br> * 不启用servlet 3.0 支持、环境变量spring.profiles.active=dev * * @param port 端口 */ public TomcatBootstrapHelper(int port) { this(port, false); } /** * 构建一个<code>TomcatBootstrapHelper.java</code><br> * 端口:8080、不启用servlet 3.0 支持、环境变量spring.profiles.active=dev */ public TomcatBootstrapHelper() { this(DEFAULT_PORT); } public void start() { try { long begin = System.currentTimeMillis(); Tomcat tomcat = new Tomcat(); configTomcat(tomcat); tomcat.start(); long end = System.currentTimeMillis(); log(end - begin); //在控制台回车就可以重启,提高效率 while (true) { char c = (char) System.in.read(); if (c == ENTER_CHAR) { begin = System.currentTimeMillis(); System.out.println("重启tomcat..."); tomcat.stop(); tomcat.start(); end = System.currentTimeMillis(); log(end - begin); } } } catch (Exception e) { e.printStackTrace(); } } private void configTomcat(final Tomcat tomcat) throws ServletException { tomcat.setBaseDir("target"); tomcat.setPort(port); Connector connector = new Connector("HTTP/1.1"); connector.setPort(port); connector.setURIEncoding("utf-8"); tomcat.setConnector(connector); tomcat.getService().addConnector(connector); String webappPath = getWebappsPath(); System.out.println("webapp目录:" + webappPath); Context ctx = tomcat.addWebapp("/", webappPath); StandardJarScanner scanner = (StandardJarScanner) ctx.getJarScanner(); if (!isServlet3Enable) { scanner.setScanAllDirectories(false); scanner.setScanClassPath(false); } tomcat.setSilent(true); System.setProperty("org.apache.catalina.SESSION_COOKIE_NAME", "JSESSIONID" + port); } private void log(long time) { System.out.println("********************************************************"); System.out.println("启动成功: http://127.0.0.1:" + port + " in:" + time + "ms"); System.out.println("您可以直接在console里敲回车,重启tomcat"); System.out.println("********************************************************"); } public String getWebappsPath() { String file = getClass().getClassLoader().getResource(".").getFile(); return file.substring(0, file.indexOf("target")) + "src/main/webapp"; }}
阅读全文
0 0
- 内嵌式tomcat启动web工程
- Tomcat启动指定的Web工程
- java工程转web eclipse tomcat下工程不启动
- 为何要用maven tomcat插件来启动web工程?
- tomcat 识别 web 工程
- tomcat部署web工程
- tomcat部署web工程
- tomcat部署web工程
- web工程启动顺序
- maven启动web工程
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- Tomcat设置默认启动项目及Java Web工程设置默认启动页面
- python学习之头文件问题
- 使用Gradle创建Java项目
- java编程思想---第三章(操作符)
- Gearman的Worker的多进程实现
- 11.27第17节课
- 内嵌式tomcat启动web工程
- JDK7与JDK8中HashMap的实现
- Spring参数校验
- 多渠道打包方法简介
- 处理Gradle中的这个文件下载慢的问题
- 4用于cifar10的卷积神经网络-4.20relu, relu6和softplus激活函数的输出汇总分析
- 1. Hello Go(Go Tutorial)
- JNI错误之:error: base operand of '->' has non-pointer type '_JNIEnv'
- table 和 pivot_table