完全自主创建Wrapper Tomcat容器
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
完全自主创建Wrapper Tomcat容器的更多相关文章
- Docker实战之创建一个tomcat容器
一.Docker与虚拟机的区别 二.Docker学习步骤 2.1:安装宿主操作系统 在VMVare中安装了Ubuntu 16.04.2 LTS (GNU/Linux 4.4.0-62-generic ...
- 精尽Spring Boot源码分析 - 内嵌Tomcat容器的实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- 精尽Spring Boot源码分析 - 支持外部 Tomcat 容器的实现
该系列文章是笔者在学习 Spring Boot 过程中总结下来的,里面涉及到相关源码,可能对读者不太友好,请结合我的源码注释 Spring Boot 源码分析 GitHub 地址 进行阅读 Sprin ...
- Spring Boot2.0之 原理—创建内置Tomcat容器
前面所述的https://www.cnblogs.com/toov5/p/9823728.html 中的第一条先不赘述了,就是玩了maven 重点介绍后两条 首先内置Tomcat: SpringBoo ...
- maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包
maven这些工具负责创建项目,然后maven负责打包好war包扔进tomcat容器,tomcat容器接受的只是jar包 2.tomcat不管你什么编译的,也不管你开发工具是什么.Tomcat只接受w ...
- docker创建tomcat容器
配置阿里云镜像地址:先在阿里云搜索:容器镜像服务 --> 最下面找到 容器加速服务 docker配置 etc目录下 创建docker文件夹 mkdir --->docker --- ...
- Docker - 解决创建 tomcat 容器镜像却无法访问页面的问题
问题背景 查看 tomcat 镜像 docker images 运行并创建 tomcat 容器 docker -d -p 8888:8080 --name=tomcat2 tomcat:latest ...
- Tomcat剖析(五):Tomcat 容器
Tomcat剖析(五):Tomcat 容器 1. Tomcat剖析(一):一个简单的Web服务器 2. Tomcat剖析(二):一个简单的Servlet服务器 3. Tomcat剖析(三):连接器(1 ...
- 深入浅出Tomcat/4 - Tomcat容器
Container是一个Tomcat容器的接口,Tomcat有四种容器 · Engine · Host · Context · Wrapper Engine代表整个Ca ...
随机推荐
- nginx解决反向代理超时
最近在公司windows服务器部署nginx前端项目时 因为业务需求 有个有个接口数据量很大,请求时长在很大可能超过一分钟 然后一直遇到了504 Gateway Time-out 在网上查了很多资料都 ...
- 从壹开始前后端分离 [.netCore 填坑 ] 三十四║Swagger:API多版本控制,带来的思考
前言 大家周二好呀,.net core + Vue 这一系列基本就到这里差不多了,今天我又把整个系列的文章下边的全部评论看了一下(我是不是很负责哈哈),提到的问题基本都解决了,还有一些问题,已经在QQ ...
- 【Android Studio安装部署系列】三十七、从Android Studio3.2升级到Android Studio3.4【以及创建Android Q模拟器】
版权声明:本文为HaiyuKing原创文章,转载请注明出处! 概述 保持Android Studio开发环境的最新版本. 下载Android Studio3.4 使用Android Studio自带的 ...
- 微信小程序开发05-日历组件的实现
接上文:微信小程序开发04-打造自己的UI库 github地址:https://github.com/yexiaochai/wxdemo 我们这里继续实现我们的日历组件,这个日历组件稍微有点特殊,算是 ...
- 100 - k8s源码分析-准备工作
今天我们开始讲kubernetes的源码! 之前的其他开源项目还没有说完,后续会陆陆续续更新,我们把主线先放到k8s的源码上. 之前我想详细讲解每一行k8s源码,但是越看越发现一个大型开源项目如果拘泥 ...
- sql小知识点
1]sql去重复 select * from View where SfzId in ())
- Eclipse中安装git后pull远程仓库出现错误解决方法
该图中位置为false 在配置文件中添加如下语句 -Dhttps.protocols=TLSv1,TLSv1.1,TLSv1.2
- unity transform 常用操作
1.寻找物体 1.1 寻找满足条件的子物体 ` public static Transform FindObj(Transform transform, Func<Transform, bool ...
- 面试常问的几个排序和查找算法,PHP实现
冒泡,快排,二分查找,都是面试常问的几个算法题目,虽然简单,但是一段时间不用的话就很容易忘记,这里我用PHP实现了一下,温故而知新. 排序 冒泡排序 每一次冒出一个最大的值 function bubb ...
- 数据结构学习java(一点五)链式顺序表(链表)
java中没有将指针暴露给用户(以前做过看过一篇文章写有java中是有指针的,只是被藏起来了),所以得使用引用的方式. 何为引用请看下面这篇文章(写的很不错,当然肯定比我写的好): https://w ...