What does $ {catalina.home} install in Tomcat 6 configuration files?

I am trying to adapt some old build scripts to run with the Tomcat 6 RPM installation and I am doing the following:

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) 

This is not surprising since Tomcat is not located in /var/lib/tomcat6 , it is located in /usr/share/tomcat6 . When I look for where this might come from, all I find is the following in a file called host-manager.xml :

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

Now I have $CATALINA_HOME set to /usr/share/tomcat6 , as it should be, and there are no links to /var/lib anywhere in my web application (including configuration) or my Tomcat 6 installation, as far as I can tell, So What is ${catalina.home} , and how is /var/lib/tomcat6 replaced with it?

+6
source share
1 answer

Look in your ${TOMCAT_HOME}/bin/catalina.sh file - scroll down to the initial section - the system property of directories. system is set from the CATALINA_HOME env variable:

 -Dcatalina.home=\"$CATALINA_HOME\" 

Now, why is this not the same as you have CATALINA_HOME env variable set to - you need to check how your tomcat server starts, in particular, which environment variables are set in the process / context from which it is started.

So how do you start your tomcat instance?

+9
source

Source: https://habr.com/ru/post/912069/


All Articles