当Tomcat作为Windows服务运行时,无法加载Web应用程序

3
我正在使用Tomcat 7,我的Web应用程序在Tomcat bin目录下有1个配置文件和1个hazelcast.xml文件。当我从startup.bat启动Tomcat进程时,catalina.timestamp.log显示INFO: Configuring Hazelcast from 'C:\Program Files\Apache Software Foundation\Tomcat 7.0_ApacheTomcat7\bin\hazelcast.xml'。一切正常,但是当我将同一个Web应用程序作为Windows服务启动时,它会进入Tomcat主目录并在此处查找文件INFO: Configuring Hazelcast from 'C:\Program Files\Apache Software Foundation\Tomcat 7.0_ApacheTomcat7\hazelcast.xml'。 是否需要设置任何JVM或Tomcat选项?
以下是我在Tomcat属性中设置的Java选项。
-Dcatalina.home=C:\Program Files\Apache Software Foundation\Tomcat 7.0_ApacheTomcat7
-Dcatalina.base=C:\Program Files\Apache Software Foundation\Tomcat 7.0_ApacheTomcat7
-Djava.endorsed.dirs=C:\Program Files\Apache Software Foundation\Tomcat 7.0_ApacheTomcat7\endorsed
-Djava.io.tmpdir=C:\Program Files\Apache Software Foundation\Tomcat 7.0_ApacheTomcat7\temp
-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
-Djava.util.logging.config.file=C:\Program Files\Apache Software Foundation\Tomcat 7.0_ApacheTomcat7\conf\logging.properties

enter image description here

1个回答

0

我成功解决了我的问题。

当我将Tomcat作为Windows服务启动时,它会将当前工作目录设置为%CATALINA_HOME%。因此,我在service.bat中添加了--StartPath=%CATALINA_HOME%\bin(详情请参见此处),并像这样安装了一个全新的服务:service.bat install MyService

screenshot showing where entry for StartPath has to be made

如果没有 service.bat,但有 tomcat6:以下是创建新的 Windows 服务的命令。
tomcat6 //IS//MyService --DisplayName="My Service Name" \ --Install="C:\tomcat6\bin\tomcat6.exe" --Jvm=auto \ --StartMode=jvm --StopMode=jvm \ --StartClass=org.apache.catalina.startup.Bootstrap --StartParams=start \ --StopClass=org.apache.catalina.startup.Bootstrap --StopParams=stop \ --StartPath=C:\tomcat6\bin

您甚至可以在Tomcat GUI(通常称为“ Commons Daemon Service Manager”)中设置此选项:Startup tab | Start parameters
(默认名称是tomcat7w.exe或“ YOURSERVICENAMEHEREw.exe”)。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接