是否可以修改Tomcat的某个批处理文件,以便在设置为Web服务的Tomcat启动之前执行类似检查或修改某些文件的操作?
所以我们想要的是每次Tomcat服务启动时,对tomcat托管的应用程序所需的某些特定文件进行一些修改。
如果可以通过tomcat中的一个批处理文件来实现,那么我们应该修改哪个批处理文件?任何想法将不胜感激。顺便说一下,我们正在使用tomcat 7。
答案 0 :(得分:0)
简短回答:这是不可能的,至少没有简单的方法可以做到,就像Shashank Kadne指出的页面上所讨论的那样。除了通过startup.bat
脚本启动Tomcat并将代码(或对BAT文件的调用)放在与setenv.bat
相同的文件夹中的startup.bat
文件中。
如果您尝试在单个Tomcat安装上运行Jenkins,Artifactory等应用程序 - 如该页面所述 - 更好的方法是创建Tomcat服务器实例(也称为CATALINA_BASE
)每个额外的申请。
这样,您可以将每个应用程序作为Windows服务并将其作为服务进行控制。
假设:
您的Java安装在C:\Program Files\Java\jdk-7.0_03
。
您的Tomcat已安装在C:\Program Files\Apache\Tomcat 7
。
你想要,例如Jenkins服务器位于C:\Program Files\My Jenkins
。
启动cmd.exe
,然后执行以下操作:
C:\Users\me> set "JAVA_HOME=C:\Program Files\Java\jdk-7.0_03"
C:\Users\me> set "CATALINA_HOME=C:\Program Files\Apache\Tomcat 7"
C:\Users\me> set "CATALINA_BASE=C:\Program Files\My Jenkins"
C:\Users\me> cd "%CATALINA_BASE%"
C:\Program Files\My Jenkins> mkdir "%CATALINA_BASE%\bin"
C:\...Jenkins> mkdir "%CATALINA_BASE%\conf"
C:\...Jenkins> mkdir "%CATALINA_BASE%\lib"
C:\...Jenkins> mkdir "%CATALINA_BASE%\logs"
C:\...Jenkins> mkdir "%CATALINA_BASE%\temp"
C:\...Jenkins> mkdir "%CATALINA_BASE%\webapps"
C:\...Jenkins> mkdir "%CATALINA_BASE%\work"
C:\...Jenkins> copy "%CATALINA_HOME%\conf\*.*" "%CATALINA_BASE%\conf"
C:\...Jenkins> copy "%CATALINA_HOME%\bin\*.exe" "%CATALINA_BASE%\bin"
C:\...Jenkins> copy "%CATALINA_HOME%\bin\tomcat-juli.jar" "%CATALINA_BASE%\bin"
C:\...Jenkins> cd bin
C:\...Jenkins> ren tomcat7.exe jenkins.exe
C:\...Jenkins> ren tomcat7w.exe jenkinsw.exe
下一个命令应该在一行
C:\...Jenkins> jenkins.exe //IS//Jenkins --DisplayName "Jenkins CI"
--Description "Jenkins Continuous Integration Server on Tomcat"
--Startup auto --JavaHome "%JAVA_HOME%" --StartMode jvm --StopMode jvm
--StartClass org.apache.catalina.startup.Bootstrap
--StopClass org.apache.catalina.startup.Bootstrap
--StartParams start --StopParams stop
--Classpath "%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_BASE%\bin\tomcat-juli.jar;"
--StdOutput auto --StdError auto --LogLevel INFO
--LogPath "%CATALINA_BASE%\logs"
--JvmOptions -Xrs;-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;
您现在应该在“服务”窗口中拥有Jenkins CI
服务。
将Jenkins Web应用程序(WAR
文件)部署到%CATALINA_BASE%\webapps
。
我上面给出的步骤“来自头部”并没有经过测试,我可能错过了一两个参数。这就是为什么有%CATALINA_BASE%\bin\jenkinsw.exe
- 启动它并调整参数直到服务器工作。