由於承接舊系統,需要將Tomcat3.3由Windows排程啟動改為服務方式啟動,用以解決使用啟動排程的執行帳號登入系統後又登出,使得Tomcat的執行程式被關閉的問題。
參考Tomcat3.3目錄\doc\NT-Service-howto.html說明,執行下列步驟:
1.於Tomcat binary distribution下載NT executable (jk_nt_service.exe) 。
2.將jk_nt_service.exe放到Tomcat3.3目錄\conf\jk\中。
3.備份Tomcat3.3目錄\conf\jk\wrapper.properties。
4.使用文字編輯器開啟Tomcat3.3目錄\conf\jk\wrapper.properties,修改下列項目:
(1)設定wrapper.tomcat_home參數,指定您的Tomcat3.3目錄。
例:wrapper.tomcat_home=C:\JAVA\Tomcat3.3
(2)設定wrapper.java_home參數,指定您的JDK目錄。
例:wrapper.java_home=C:\JAVA\jdk1.3.1_13
(3)新增wrapper.jvm.options參數,參數設定請依安裝環境與需求修改。
例:
#
# JVM Options
#
# Useful Options:
# -server to select the "server" VM
# -Xms256m<size> Initial heap size, modify for desired size
# -Xmx256m<size> Maximum heap size, modify for desired size
# -Xss<size> set java thread stack size
# -Xrs Available in Jdk1.3.1 to avoid JVM termination during logoff,reduce use of OS signals by Java/VM (see documentation)
#
wrapper.jvm.options=-server -Xrs -Xms512m -Xmx512m –XX:PermSize=388m –XX:MaxPermSize=388m –Xss160k –XX:NewSize=128m
5.開啟命令列視窗(Command),【開始】→【執行】→ 輸入cmd →【確定】
6.輸入 cd Tomcat3.3目錄\conf\jk\ 再按確定。
7.輸入jk_nt_service.exe註冊服務。
安裝服務說明:
jk_nt_service -i <service name> {optional params} <config properties file>
Optional parameters說明
-n <service display name> 要顯示的服務名稱,
-u <user name> - 指定用來啟動服務的帳號,帳號格式為 DomainName\UserName (.\UserName 本機帳號的格式)
-p <user password> 啟動服務的帳號的密碼
-a - 加上此參數可以設定為開機自動啟動
-d <service dependency> 指定相依的服務
例:
假設我的服務名稱要設定為Tomcat3.3且須開機自動啟動,並使用本機帳號administrator、密碼為abc,
但必須等到微軟SQLSERVER的啟動服務MSSQLSERVER啟動完成才接著啟動,
並為啟動Tomcat3.3的服務設定使用說明"XX系統"
jk_nt_service -i "Tomcat3.3" -n "XX系統" -A -u .\Administrator -P abc -D MSSQLSERVER wrapper.properties
若不指定啟動帳號則執行下列語法
jk_nt_service -i "Tomcat3.3" -n "XX系統" -A -D MSSQLSERVER wrapper.properties
若註冊成功則訊息如下
PS:如果你的Tomcat版本是3.3.2最後一版的Tomcat,你還需要修改參數wrapper.class_path,加上commons-logging-api.jar的路徑
wrapper.class_path=$(wrapper.tomcat_home)\lib\tomcat.jar;$(wrapper.tomcat_home)\lib\common\commons-logging-api.jar;
若不指定則Tomcat將無法啟動,在jvm.stderr中可以看到如下錯誤訊息:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory
at org.apache.tomcat.util.compat.Jdk11Compat.<clinit>(Jdk11Compat.java:34)
at org.apache.tomcat.startup.Main.<clinit>(Main.java:111)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 2 more
Could not find the main class: org.apache.tomcat.startup.Main. Program will exit.
Exception in thread "main"
8.啟動服務
jk_nt_service -s <service name>
例:jk_nt_service -s "Tomcat3.3"
服務啟動成功
重複啟動服務
9.停止服務
jk_nt_service -t <service name>
例:jk_nt_service -t "Tomcat3.3"
10.移除服務
jk_nt_service -r <service name>
例:jk_nt_service -r "Tomcat3.3"
留言列表