每次Tomcat服务通过批处理文件启动时都要执行一些操作
是否可以修改Tomcat的某个批处理文件,以便在设置为web服务的Tomcat启动之前,执行类似于检查或修改某些文件的操作 所以我们想要的是,每当Tomcat服务启动时,对Tomcat托管的应用程序所需的某些特定文件进行一些修改每次Tomcat服务通过批处理文件启动时都要执行一些操作,tomcat,batch-file,tomcat7,batch-processing,Tomcat,Batch File,Tomcat7,Batch Processing,是否可以修改Tomcat的某个批处理文件,以便在设置为web服务的Tomcat启动之前,执行类似于检查或修改某些文件的操作 所以我们想要的是,每当Tomcat服务启动时,对Tomcat托管的应用程序所需的某些特定文件进行一些修改 如果可以通过tomcat中的一个批处理文件进行修改,那么应该修改哪个批处理文件?任何想法都将不胜感激。顺便说一句,我们使用的是tomcat 7。简短回答:这是不可能的,至少没有简单的方法可以做到,正如Shashank Kadne在页面上指出的那样。除了通过startup
如果可以通过tomcat中的一个批处理文件进行修改,那么应该修改哪个批处理文件?任何想法都将不胜感激。顺便说一句,我们使用的是tomcat 7。简短回答:这是不可能的,至少没有简单的方法可以做到,正如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\u 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\u BASE%\webapps
中
我上面给出的步骤是“从头开始”的,没有经过测试,我可能遗漏了一两个参数。这就是为什么存在
%CATALINA\u BASE%\bin\jenkinsw.exe
-启动它并调整参数,直到服务器工作。您可以修改位于bin文件夹中的“startup.bat”。这里的问题是,当我们在services.msc中启动服务时,似乎没有调用startup.bat,因为我们的修改没有反映出来。但是,如果手动单击startup.bat,则会反映所做的修改。查看该服务的属性并查看它调用的可执行文件。如果它的startup.bat,则它应该可以工作。“tomcat7_x86.exe”是它调用的文件。查看这是否有帮助……您可以编写一个ServletContextListener
并运行您的bat文件-检查我的答案。