You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Rick Mann <rm...@latencyzero.com> on 2003/03/08 00:00:29 UTC

Configuration Home must be a directory! : /usr/local/apache2

When starting Tomcat 4.1.21 I get the following exception in the  
catalina.out log:

> ServerLifecycleListener: Creating MBean for NamingResources  
> org.apache.catalina.deploy.NamingResources@309516
> 14949 [main] ERROR digester.Digester  - Begin event threw exception
> java.lang.reflect.InvocationTargetException
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at  
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.ja 
> va:39)
>         at  
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccesso 
> rImpl.java:25)
>
> ...
>
> Caused by: java.lang.IllegalArgumentException:  
> BaseConfig.setConfigHome(): Configuration Home must be a directory! :  
> /usr/local/apache2
>         at  
> org.apache.ajp.tomcat4.config.BaseJkConfig.setConfigHome(BaseJkConfig.j 
> ava:329)
>         ... 39 more
>

I have modified my server.xml file to be very straightforward. However,  
I've changed the appBase part of the single Host element to point to a  
different directory that is to contain .xml Context files.

The implication is that Tomcat is trying to configure a JK connector,  
but I have only two Coyote connectors set up, one for requests on port  
80, the other on 443:

> 		<!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 80 -->
> 		<Connector
> 			className="org.apache.coyote.tomcat4.CoyoteConnector"
> 			port="80"
> 			minProcessors="5"
> 			maxProcessors="75"
> 			enableLookups="true"
> 			redirectPort="443"
> 			acceptCount="10"
> 			debug="5"
> 			connectionTimeout="20000"
> 			useURIValidationHack="false" />
> 			
> 		<!-- Note : To disable connection timeouts, set connectionTimeout  
> value to -1 -->
>
> 		<!-- Define a SSL Coyote HTTP/1.1 Connector on port 443 -->
>
> 		<Connector
> 			className="org.apache.coyote.tomcat4.CoyoteConnector"
> 			port="443"
> 			minProcessors="5"
> 			maxProcessors="75"
> 			enableLookups="true"
> 			acceptCount="10"
> 			debug="5"
> 			scheme="https"
> 			secure="true"
> 			useURIValidationHack="false">
> 		
> 			<Factory
> 				className="org.apache.coyote.tomcat4.CoyoteServerSocketFactory"
> 				clientAuth="false"
> 				protocol="TLS"
> 				keystoreFile="<somewhere>"
> 				keystorePass="<password>" />
> 		
> 		</Connector>


> Interestingly, it works fine if I point appBase at the directory  
> containing that directory. That is to say, this works:

> 			<Host
> 				name="localhost"
> 				debug="5"
> 				appBase="/Volumes/Data/Users/rmann/Sites"
> 				unpackWARs="true"
> 				autoDeploy="true">

But this does not (it gets the exception above):

> 			<Host
> 				name="localhost"
> 				debug="5"
> 				appBase="/Volumes/Data/Users/rmann/Sites/tomcat-webapps"
> 				unpackWARs="true"
> 				autoDeploy="true">

And since I've been experimenting, neither does this;

> 			<Host
> 				name="localhost"
> 				debug="5"
> 				appBase="webapps"
> 				unpackWARs="true"
> 				autoDeploy="true">
>

This is on Mac OS X 10.2.4, which has no /usr/local/apache2 directory.  
On my Linux box, which does have /usr/local/apache2, I don't get this  
problem. However, why does it work for one appBase but not another?

TIA,

Rick


---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-user-help@jakarta.apache.org