Tomcat註冊成windows系統服務之後,如何增加 security 安全參數在dos命令列啟動tomcat為:startup.bat -security,傳遞了security安全參數,防止用jsp列表格服務器上的檔案、目錄對象,但是註冊成系統服務之後,無法為服務增加參數。在網上 搜尋了很多資料,問類似問題的也不少,但是沒有一個解決的。經過自己測試,終於找到瞭解決辦法。為了不讓其他網友走自己同樣的彎路,特將方法總結一下。在
tomcat的bin目錄下,有一tomcat5w.exe檔案,此工具是監控tomcat服務狀態及佈建服務的。
開啟此工具,切換到java標籤頁面,在java options選項裡開始加入如下參數:-Djava.security.manager- Djava.security.policy=D://temp//apache-tomcat-5.5.12//conf //catalina.policy【將目錄改為tomcat安裝的目錄】點擊【確定】或者【應用】按鈕,儲存配置,重新啟動服務,即可。
從網路上找到一些關於Tomcat5w的資料:
先說說Tomcat5.exe和Tomcat5w是幹什麼的。
Tomcat5.exe可以把Tomcat加入服務;Tomcat5w.exe可以輔助配置已經添加的服務。
Tomcat5w.exe 監控程式
Tomcat5w是一個監控和配置Tomcat服務的圖形介面應用程式。可用的命令列選項如下:
//ES// 編輯服務配置,這是預設的選項。如果沒有提供任何選項,卻把tomcat5w.exe重新命名為%SERVICE_NAME%.exe啟動並執行話,這個選項就被調用。
//MS// 監控服務,講表徵圖放置到系統托盤中。
Tomcat5.exe 服務程式
命令列選項
每一個命令列指令都形如//XX//ServiceName
可用的命令列選項如下:
The ServiceName is the name of the executable without exe sufix, meaning Tomcat5
//TS// 控制台應用程式模式運行服務,這是預設的操作。在沒有提供任何選項開關的時候,它被調用。服務名是執行檔案沒有exe尾碼的部分,如Tomat5。
//RS// Run Service的縮寫,運行服務,在服務管理員(Sevices.msc)中啟動服務的時候被調用。
//SS// Stop Service的縮寫,停止服務,在服務管理員中停止服務時被調用。
//US// Update Service的縮寫,更新服務參數。
//IS// Install service 的縮寫,安裝服務 。
//DS// Delete service的縮寫,刪除服務,如果服務正在運行,首先刪除服務。
命令列參數
每一個命令列參數以“--”開頭。如果命令列以“++”為首碼,則它的值附加到存在的選項上。如果存在和命令列參數有同樣的名字,但是以PR_開頭的環境變數,它將被優先使用。例如:
set PR_CLASSPATH=xx.jar
等同於
--Classpath=xx.jar
作為命令列參數。
參數名 預設值 描述
--Description 服務名描述 (最多1024個字元)
--DisplayName ServiceName 服務顯示名稱
--Install procrun.exe //RS//ServiceName 安裝服務
--Startup manual Service 服務啟動模式,可以是自動或者手動,值分別為:auto和manual
--DependsOn 列舉此服務依賴的所有服務. 被依賴的服務用#或者;分隔。
--Environment 列決提供給服務使用的環境變數,形如key=value。多個環境變數之間用#或者;分隔。
--User 運行服務使用的使用者帳號。 只有在運行於沒有“作為服務登入”許可權下的賬戶中使用StartMode java 或者作為服務的exe可運行程式選項的情況下才被使用。
--Password --User參數中使用者的密碼
--JavaHome JAVA_HOME 定義了JAVA_HOME環境變數時,設定一個不同的JAVA_HOME環境變數
--Jvm auto 用auto或指定jvm.dll的全路徑。這裡可以使用環境變數運算式。
--JvmOptions -Xrs 列舉形如-D 或 -X 的開關傳遞給JVM虛擬機器。多個選項開關之間用#或者;分隔。
--Classpath 設定Java的ClassPath環境變數。
--JvmMs 設定初始使用的記憶體池容量,單位為MB。
--JvmMx 設定最大使用的記憶體池容量,單位為MB。
--JvmSs 線程堆棧容量,單位為KB
--StartImage 要被啟動並執行可執行檔
--StartPath 開始運行可執行檔的工作路徑
--StartClass 啟動時使用的類
--StartParams 列決要傳遞給StartImage 或 StartClass的參數。多個參數之間用#或者;分隔。
--StartMethod Main 啟動服務調用的方法,如果不是main,這裡寫上方法名
--StartMode executable 可以是jvm、java或exe 之一
--StopImage 停止服務調用的可執行檔
--StopPath 停止服務執行的檔案的工作路徑
--StopClass 停止服務調用的類
--StopParams 列決要傳遞給 StopImage 或 StopClass 的參數。多個參數之間用#或者;分隔。
--StopMethod Main 停止服務調用的方法,如果不是main,這裡寫上方法名
--StopMode executable 可以是jvm、java或exe 之一
--StopTimeout No Timeout 定義一個服務順利退出的延時,單位為秒。
--LogPath 定義日誌路徑
--LogPrefix jakarta_service 定義記錄檔名首碼
--LogLevel INFO 定義日誌等級,可選值:error, info, warn或debug
--StdOutput 重新導向stdout檔案名稱
--StdError 重新導向Stderr檔案名稱
安裝服務
手動安裝服務最安全的方法就是使用service.bat指令碼。
使用service.bat安裝名字為''''Tomcat5''''的服務
C:/> service.bat install Tomcat5
如果使用tomcat5.exe安裝名字為''''Tomcat5''''的服務,你需要使用//IS//參數。
C:/> tomcat5 //IS//Tomcat5 --DisplayName="Apache Tomcat 5" --Install="C:/Program Files/Tomcat/bin/tomcat5.exe" --Jvm=auto --StartMode=jvm --StopMode=jvm --StartClass=org.apache.catalina.startup.Bootstrap
--StartParams=start --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop
更新服務
要更新服務的參數,你需要使用tomcat5.exe的//US//參數。
更新名字為''''Tomcat5的服務
C:/> tomcat5 //US//Tomcat5 --Description="Apache Tomcat Server - http://jakarta.apache.org/tomcat " --Startup=auto --Classpath=%JAVA_HOME%/lib/tools.jar;%CATALINA_HOME%/bin/bootstrap.jar
移除服務
要移除服務,你需要使用tomcat5.exe的//DS//參數。如果服務正在運行,將首先關閉然後刪除。
移除名字為''''Tomcat5''''的服務
C:/> tomcat5 //DS//Tomcat5
調試服務
如果需要在控制台模式運行服務,應該使用//TS//參數。此時若要關閉服務必須使用CTRL+C 或者 CTRL+BREAK關閉控制台。如果你將tomcat5.exe 更名為 testservice.exe那麼你應該運行testservice.exe,命令模式將被預設運行。
在控制台模式下運行命稱為''''Tomcat5'''' 的服務
C:/> tomcat5 //TS//Tomcat5 [additional arguments]
或者簡單地運行:
C:/> tomcat5