完全自主创建Wrapper Tomcat容器

时间:2022-09-10 16:54:04

Wrapper Tomcat 使用说明
1. Wrapper Tomcat 简介
1) Wrapper Tomcat 是使用Apache Tomcat 整合 Java Service Wrapper 的一个servlet容器。使用Wrapper Tomcat与使用Apache Tomcat运行时无任何差别,区别在于Tomcat启动与配置时有点不一样。整合Java Service Wrapper ,使用Wrapper 方式启动Tomcat的初衷是解决Apache Tomcat使用jsvc方式启动的日志文件大小不可控问题。
2) Wrapper Tomcat目录结构
├─bin
├─conf
│ └─Catalina
│ └─localhost
├─lib
├─logs
├─temp
├─webapps
└─work
2. Wrapper Tomcat 优点
1) 解决Apache Tomcat使用jsvc方式启动的日志文件大小不可控问题。
2) 当Wrapper Tomcat 内存溢出之后可以自动重启Tomcat。
3) 配置非环境变量下的JDK,可将java.exe 重命名为tomcat.exe 或其他*.exe,便于在任务管理器中区分Tomcat进程。
4) 注册成服务之后可设置开机启动

3. Wrapper Tomcat 环境
Wrapper Tomcat 可在Window,Linux,Mac环境下运行
启动Tomcat需要有JDK

4. Wrapper Tomcat 配置 (wrapper.conf )
在conf 目录下有一个配置文件wrapper.conf,文件打开之后结构如下图类似(我使用notepad++打开)

配置文件使用key=value方式来配置,类似于java中的*.properties配置文件
#号为注释
配置项:
1) encoding=UTF-8
配置wrapper编码,默认使用UTF-8
2) wrapper.java.command=java
设置JDK环境变量,此处如果配置了set.JAVA_HOME,则后面可以使用 wrapper.java.command=%JAVA_HOME%/bin/java.exe
另外,Wrapper设置一个变量可以这样设置 set.变量名称=变量值,例如 设置PATH :
set.PATH=C:/Window/System32;
使用时可以使用 %变量名称%取得变量值,与在window下的bat文件语法相似,如果系统已经配置了环境变量,也可以使用 %变量名称% 取得变量值,例如系统已经定义了 JAVA_HOME 这个变量,可以直接使用 %JAVA_HOME% 取得变量值,这样就不需要使用set.JAVA_HOME
3) wrapper.java.mainclass= org.tanukisoftware.wrapper.WrapperJarApp
#此处设置java Wrapper 启动入口类,一般使用默认配置即可
4) wrapper.java.classpath.1=./*.jar
配置java环境变量 .表示当前目录(wrapper.exe)所在文件目录,如果需要配置多个环境变量,可以使用wrapper.java.classpath.序号=值,例如:
wrapper.java.classpath.1=./*.jar
wrapper.java.classpath.2=../lib/*.jar
wrapper.java.classpath.3=../bin/*.jar

5) wrapper.java.library.path.1=./
配置wrapper.dll所在文件目录,或者其他dll所在文件目录


6) wrapper.java.initmemory=128
配置Java初始化内存,单位MB

7) wrapper.java.maxmemory=768
配置Java堆内存,单位MB


8) wrapper.app.parameter.1=./bootstrap.jar
配置java入口启动java包,前提是前面配置了
wrapper.java.mainclass= org.tanukisoftware.wrapper.WrapperJarApp
如果使用
wrapper.java.mainclass=org.tanukisoftware.wrapper.WrapperStartStopApp
则后面wrapper.app.parameter.*配置如下:
wrapper.app.parameter.1= org.apache.catalina.startup. Bootstrap
wrapper.app.parameter.2=1
wrapper.app.parameter.3=start

wrapper.app.parameter.4= org.apache.catalina.startup. Bootstrap
wrapper.app.parameter.5=true
wrapper.app.parameter.6=1
wrapper.app.parameter.7=stop

9) wrapper.java.additional.1=-Dcatalina.base=../
wrapper.java.additional.2=-Dcatalina.home=../
wrapper.java.additional.3=-Djava.io.tmpdir=../temp
配置Tomcat启动环境变量

10) wrapper.logfile=../logs/wrapper.log
配置日志文件存放目录

11) wrapper.logfile.format=LPTM
配置日志文件输出格式(下面摘自Wrapper 官网)
 'L' for log level,
 'P' for prefix,
 'D' (Since ver. 3.1.0) for thread,
 'T' for time,
 'Z' for millisecond time,
 'R' quite duration milliseconds showing the time since the previous JVM output,
 'U' (Since ver. 3.5.0) for approximate uptime in seconds (based on internal tick counter and is valid up to one year from startup),
 'M' for message.

12) wrapper.logfile.maxsize=5m
配置日志文件最大体积0表示无限制 5m表示5MB ,记得要加上单位,如不加单位,默认是b

13) wrapper.logfile.maxfiles=20
配置最大日志文件存放数,多余的会被删除

14) 配置window服务
# Name of the service
wrapper.name=tomcat8095(名称)

# Display name of the service
wrapper.displayname= tomcat8095(显示名称)

# Description of the service
wrapper.description= tomcat8095 (名称描述)

# Service dependencies. Add dependencies as needed starting from 1
#wrapper.ntservice.dependency.1=

# Mode in which the service is installed. AUTO_START, DELAY_START or DEMAND_START
wrapper.ntservice.starttype=AUTO_START