我正在尝试调整一些旧的构建脚本,以便在Tomcat 6的RPM安装中运行,我遇到了以下问题:
java.lang.IllegalArgumentException: Document base /var/lib/tomcat6/webapps/host-manager does not exist or is not a readable directory
at org.apache.naming.resources.FileDirContext.setDocBase(FileDirContext.java:142)
at org.apache.catalina.core.StandardContext.resourcesStart(StandardContext.java:4086)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4255)
at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791)
at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:771)
at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:526)
at org.apache.catalina.startup.HostConfig.deployDescriptor(HostConfig.java:637)
at org.apache.catalina.startup.HostConfig.deployDescriptors(HostConfig.java:563)
at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:498)
at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1277)
at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:321)
at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1053)
at org.apache.catalina.core.StandardHost.start(StandardHost.java:722)
at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1045)
at org.apache.catalina.core.StandardEngine.start(StandardEngine.java:443)
at org.apache.catalina.core.StandardService.start(StandardService.java:516)
at org.apache.catalina.core.StandardServer.start(StandardServer.java:710)
at org.apache.catalina.startup.Catalina.start(Catalina.java:593)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:616)
at org.apache.catalina.startup.Bootstrap.start(Bootstrap.java:289)
这并不奇怪,因为Tomcat不在/var/lib/tomcat6
中,而是在/usr/share/tomcat6
中。当我寻找这可能来自哪里时,我在一个名为host-manager.xml
:的文件中只找到以下内容
<Context docBase="${catalina.home}/webapps/host-manager"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
现在,我已经将$CATALINA_HOME
设置为/usr/share/tomcat6
,而且据我所知,在我的web应用程序(包括配置)或Tomcat6安装中,任何地方都没有引用/var/lib
。那么什么是${catalina.home}
,/var/lib/tomcat6
是如何被取代的呢?
查看${TOMCAT_HOME}/bin/catalina.sh
文件-向下滚动到开始部分-catalina.home系统属性是从CATALINA_HOME
env变量设置的:
-Dcatalina.home="$CATALINA_HOME"
现在,关于为什么这与CATALINA_HOME
env变量设置的不同,您需要检查tomcat服务器是如何启动的,特别是在启动它的进程/上下文中设置了哪些环境变量。
那么,你是如何开始你的tomcat实例的呢?