是否可以为Tomcat修改某个批处理文件,以便在设置为Web服务的Tomcat启动之前会执行诸如检查或修改某些文件的操作?
因此,我们想要的是每次Tomcat Service启动时,对tomcat托管的应用程序所需的某些特定文件进行一些修改。
如果有可能通过tomcat中的批处理文件之一执行此操作,那么我们应该修改哪个批处理文件?任何想法将不胜感激。顺便说一句,我们正在使用tomcat 7。
简短的回答: 这是不可能的,至少没有简单的方法可以做到,正如Shashank Kadne指出的那样。除了通过startup.bat脚本启动Tomcat 并将代码(或对BAT文件的调用)放置setenv.bat在与相同文件夹中的文件之外startup.bat。
startup.bat
setenv.bat
如果您试图在单个Tomcat安装上运行Jenkins,Artifactory之类的应用程序(如该页面所述),则更好的方法是CATALINA_BASE为每个其他应用程序创建Tomcat服务器实例(也称为)。
CATALINA_BASE
这样,您可以将每个应用程序作为Windows服务,并将其作为服务进行控制。
假设:
您的Java安装在C:\Program Files\Java\jdk-7.0_03。
C:\Program Files\Java\jdk-7.0_03
您的Tomcat安装在C:\Program Files\Apache\Tomcat 7。
C:\Program Files\Apache\Tomcat 7
您希望例如Jenkins服务器位于C:\Program Files\My Jenkins。
C:\Program Files\My Jenkins
启动cmd.exe,然后执行以下操作:
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 CI
将Jenkins Web应用程序(WAR文件)部署到中%CATALINA_BASE%\webapps。
WAR
%CATALINA_BASE%\webapps
我上面给出的步骤是“从头开始”的,未经测试,我可能错过了一两个参数。这就是为什么%CATALINA_BASE%\bin\jenkinsw.exe-启动它并调整参数直到服务器正常工作的原因。
%CATALINA_BASE%\bin\jenkinsw.exe