由於承接舊系統,需要將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

       若註冊成功則訊息如下

服務註冊成功.png  

 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"

 

   服務啟動成功

StartTomcat3.3.png  

    重複啟動服務

RepartStartTomcat3.3.png  

9.停止服務

   jk_nt_service -t <service name>

   例:jk_nt_service -t "Tomcat3.3"

StopTomcat3.3.png  

10.移除服務

     jk_nt_service -r <service name>

     例:jk_nt_service -r "Tomcat3.3"

RemoveTomcat3.3.png  

,

K 發表在 痞客邦 PIXNET 留言(0) 人氣()