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

ServerLifecycleListener: Creating MBean for NamingResources [EMAIL PROTECTED]
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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to