外置 tomcat 服务器设置

外置 Tomcat 没这么太用, 今天在 windows  搭 xwiki  服务器, 比预期多花了点时间, 主要是 tomcat 环境变量没配对, tomcat 启动后闪退, 还没有日志. 最后定位到是 tomcat 环境变量问题, 解决起来就容易了. 

 

1. Tomcat 启动后闪退, 关键获知原因的方法:

startup.bat 启动脚本调用 catalina.bat , 而在  catalina.bat 中使用 windows 的 start 方式启动, 即启动一个新的窗口, 一旦闪退, 这个新窗口立即关闭, 看不到日志输出.  这时应该将 start 启动, 调整为本窗体启动, 即删除 start 前置命令. 

 

2. Tomcat 的几个环境变量. 

在 tomcat 安装目录的bin子目录下, 新建一个 setenv.bat 文件, 将下面的环境变量设置加到这个文件中, 该文件会在 tomcat startup.bat启动时候被自动加载, 正好用来设置环境变量. 

set JAVA_HOME=c:\java\jdk1.8 

set CATALINA_HOME=c:\tomcat\tomcat8.5.42

set CATALINA_BASE=c:\tomcat\tomcat8.5.42

set JAVA_OPTS="-Xmx1024m  -Xms1024m"

 

需要说明的是, CATALINA_HOME 应指向 tomcat 的 bin和 lib 的父目录, 即 binary 的公共路径. 

而 CATALINA_BASE 应指向 tomcat 的conf和logs和webapps和work的父目录, 即网站应用的父目录. 

对于单tomcat 实例, 这两个环境变量取值是一样的. 

 

3. 应用程序 war 包部署路径

 应用程序 war 应该放置到 webapps 目录下, 多数war包文件一般含有版本号,  但我们期望应用的url 最好只包含应用名, 而不要包含版本号, 需要重新命名 war 包名称,  比如xwiki.org 官网下载的 xwiki-platform-distribute-war-11.5.war, 放置到 webapps 下后, 需要重命名为 xwiki.war, 或者解压war包. 

 

 

JAVA_OPTS 说明含义:
-Xms128m
表示JVM Heap(堆内存)最小尺寸128MB,初始分配
-Xmx512m
表示JVM Heap(堆内存)最大允许的尺寸256MB,按需分配。

说明:如果-Xmx不指定或者指定偏小,应用可能会导致java.lang.OutOfMemory错误,此错误来自JVM不是Throwable的,无法用try...catch捕捉。

PermSize和MaxPermSize指明虚拟机为java永久生成对象(Permanate generation)如,class对象、方法对象这些可反射(reflective)对象分配内存限制,这些内存不包括在Heap(堆内存)区之中。

-XX:PermSize=64MB 最小尺寸,初始分配
-XX:MaxPermSize=256MB 最大允许分配尺寸,按需分配
过小会导致:java.lang.OutOfMemoryError: PermGen space

MaxPermSize缺省值和-server -client选项相关。
-server选项下默认MaxPermSize为64m
-client选项下默认MaxPermSize为32m
 

posted @ 2019-07-03 21:28  harrychinese  阅读(726)  评论(0编辑  收藏  举报