什么在Tomcat 6配置文件中设置$ {catalina.home}?

Dav*_*les 6 tomcat tomcat6

我正在尝试调整一些旧的构建脚本来运行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)
Run Code Online (Sandbox Code Playgroud)

这不足为奇,因为Tomcat不在/var/lib/tomcat6,它在/usr/share/tomcat6.当我查找它可能来自哪里时,我发现的所有内容都在以下文件中host-manager.xml:

<Context docBase="${catalina.home}/webapps/host-manager"
     privileged="true" antiResourceLocking="false" antiJARLocking="false">

</Context>
Run Code Online (Sandbox Code Playgroud)

现在,我已经$CATALINA_HOME设置了/usr/share/tomcat6它应该是,并且/var/lib在我的网络应用程序(包括配置)或我的Tomcat 6安装中没有任何引用,据我所知.那是什么${catalina.home},以及如何/var/lib/tomcat6取而代之?

Chr*_*ite 10

查看您的${TOMCAT_HOME}/bin/catalina.sh文件 - 向下滚动到开始部分 - 从CATALINA_HOMEenv变量设置catalina.home系统属性:

-Dcatalina.home=\"$CATALINA_HOME\"
Run Code Online (Sandbox Code Playgroud)

现在,为什么这与你的CATALINA_HOMEenv变量设置不同 - 你需要检查你的tomcat服务器是如何启动的,特别是在从它启动的进程/上下文中设置的环境变量.

那么你是如何开始你的tomcat实例的呢?