You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tomcat.apache.org by Leong Hong Wai <wa...@icom.edu.my> on 2003/01/17 04:46:16 UTC

Mod_jk & apache

Hi,

I just upgraded my connector from webapp to jk since almost everyone is 
telling that webapp will die soon.

But after I installed all the components for mod_jk, my apache seems not 
talking to tomcat anymore. Every time I browse to a jsp page, it will 
said 404 error , and I also found that the jsp was served under port 
16080, but I remember I didn't configure apache to do that.

If I run tomcat from port 8080, it will function well, same goes to 
apache, so I guess they are ok by their own, but not together.

Anyway, I attached all the logs that I can find in my machine, the 
mod_jk.log was empty so I guess the connector was never been triggered 
at all.

Hope somebody can give me a big me on this.

Thanks in advance.

Wai


I running on :-
OS X 10.1.4
Apache 1.3.26
Tomcat 4.0.6 with mod_jk

catalina_log :-
==========================================================================
=====
2003-01-17 09:12:30 HttpProcessor[8080][4] Starting background thread
2003-01-17 09:41:12 HttpConnector Opening server socket on all host IP 
addresses
2003-01-17 09:41:19 HttpConnector[8080] Starting background thread
2003-01-17 09:41:20 HttpProcessor[8080][0] Starting background thread
2003-01-17 09:41:20 HttpProcessor[8080][1] Starting background thread
2003-01-17 09:41:20 HttpProcessor[8080][2] Starting background thread
2003-01-17 09:41:20 HttpProcessor[8080][3] Starting background thread
2003-01-17 09:41:20 HttpProcessor[8080][4] Starting background thread
2003-01-17 09:41:20 Ajp13Connector[8009] Opening server socket on all 
host IP addresses
2003-01-17 09:41:20 Ajp13Connector[8009] Starting background thread
2003-01-17 09:41:20 Ajp13Connector[8009] accepting socket...
2003-01-17 09:41:20 Ajp13Processor[8009][0] Starting background thread
2003-01-17 09:41:20 Ajp13Processor[8009][0]  Background thread has been 
started
2003-01-17 09:41:20 Ajp13Connector[8009] added processor to available 
processors, available=0
2003-01-17 09:41:20 Ajp13Processor[8009][1] Starting background thread
2003-01-17 09:41:20 Ajp13Processor[8009][0] waiting for next socket to 
be assigned...
2003-01-17 09:41:20 Ajp13Processor[8009][1]  Background thread has been 
started
2003-01-17 09:41:20 Ajp13Connector[8009] added processor to available 
processors, available=1
2003-01-17 09:41:20 Ajp13Processor[8009][2] Starting background thread
2003-01-17 09:41:20 Ajp13Processor[8009][1] waiting for next socket to 
be assigned...
2003-01-17 09:41:20 Ajp13Processor[8009][2]  Background thread has been 
started
2003-01-17 09:41:20 Ajp13Connector[8009] added processor to available 
processors, available=2
2003-01-17 09:41:20 Ajp13Processor[8009][2] waiting for next socket to 
be assigned...
2003-01-17 09:41:20 Ajp13Processor[8009][3] Starting background thread
2003-01-17 09:41:20 Ajp13Processor[8009][3]  Background thread has been 
started
2003-01-17 09:41:20 Ajp13Connector[8009] added processor to available 
processors, available=3
2003-01-17 09:41:20 Ajp13Processor[8009][4] Starting background thread
2003-01-17 09:41:20 Ajp13Processor[8009][3] waiting for next socket to 
be assigned...
2003-01-17 09:41:20 Ajp13Processor[8009][4]  Background thread has been 
started
2003-01-17 09:41:20 Ajp13Connector[8009] added processor to available 
processors, available=4
2003-01-17 09:41:20 Ajp13Processor[8009][4] waiting for next socket to 
be assigned...
2003-01-17 09:42:20 Ajp13Connector[8009] active threads=6
2003-01-17 09:43:20 Ajp13Connector[8009] active threads=6
2003-01-17 09:44:20 Ajp13Connector[8009] active threads=6
2003-01-17 09:45:20 Ajp13Connector[8009] active threads=6
2003-01-17 09:46:20 Ajp13Connector[8009] active threads=6
2003-01-17 09:47:20 Ajp13Connector[8009] active threads=6

error_log :-
[Fri Jan 17 09:38:28 2003] [notice] Apache/1.3.26 (Darwin) configured -- 
resuming normal operations
[Fri Jan 17 09:38:28 2003] [notice] Accept mutex: flock (Default: flock)
[Fri Jan 17 09:41:53 2003] [notice] SIGHUP received.  Attempting to 
restart
[Fri Jan 17 09:41:53 2003] [warn] module mod_hfs_apple.c is already 
added, skipping
[Fri Jan 17 09:41:53 2003] [warn] module mod_redirectacgi_apple.c is 
already added, skipping
[Fri Jan 17 09:41:54 2003] [error] (2)No such file or directory: Error 
while opening the workers, jk will not work

[Fri Jan 17 09:41:54 2003] [notice] Apache/1.3.26 (Darwin) configured -- 
resuming normal operations
[Fri Jan 17 09:41:54 2003] [notice] Accept mutex: flock (Default: flock)
[Fri Jan 17 09:42:15 2003] [error] [client 192.168.1.9] File does not 
exist: /Library/WebServer/Documents/wai/hello.jsp
[Fri Jan 17 09:42:25 2003] [error] [client 192.168.1.9] File does not 
exist: /Library/WebServer/Documents/manager
[Fri Jan 17 09:43:18 2003] [error] [client 192.168.1.9] File does not 
exist: /Library/WebServer/Documents/examples/jsp/index.html

catalina.out :-
==========================================================================
=====
Starting service Tomcat-Standalone
Apache Tomcat/4.0.6
Starting service Tomcat-Apache
Apache Tomcat/4.0.6
===================================
Ajp13Connector active threads=6
java.lang.ThreadGroup[name=Ajp13Connector[8009],maxpri=10]
     Thread[Ajp13Connector[8009],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][0],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][1],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][2],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][3],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][4],5,Ajp13Connector[8009]]
===================================
===================================
Ajp13Connector active threads=6
java.lang.ThreadGroup[name=Ajp13Connector[8009],maxpri=10]
     Thread[Ajp13Connector[8009],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][0],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][1],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][2],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][3],5,Ajp13Connector[8009]]
     Thread[Ajp13Processor[8009][4],5,Ajp13Connector[8009]]
===================================

Server.xml
==========================================================================
=====

<!-- Example Server Configuration File -->
<!-- Note that component elements are nested corresponding to their
      parent-child relationships with each other -->

<!-- A "Server" is a singleton element that represents the entire JVM,
      which may contain one or more "Service" instances.  The Server
      listens for a shutdown command on the indicated port.

      Note:  A "Server" is not itself a "Container", so you may not
      define subcomponents such as "Valves" or "Loggers" at this level.
  -->

<Server port="8005" shutdown="SHUTDOWN" debug="0">
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" 
modJk="/usr/libexec/httpd/mod_jk.so"/>

   <!-- A "Service" is a collection of one or more "Connectors" that share
        a single "Container" (and therefore the web applications visible
        within that Container).  Normally, that Container is an "Engine",
        but this is not required.

        Note:  A "Service" is not itself a "Container", so you may not
        define subcomponents such as "Valves" or "Loggers" at this level.
    -->

   <!-- Define the Tomcat Stand-Alone Service -->
   <Service name="Tomcat-Standalone">

     <!-- A "Connector" represents an endpoint by which requests are 
received
          and responses are returned.  Each Connector passes requests on 
to the
          associated "Container" (normally an Engine) for processing.

          By default, a non-SSL HTTP/1.1 Connector is established on port 
8080.
          You can also enable an SSL HTTP/1.1 Connector on port 8443 by
          following the instructions below and uncommenting the second 
Connector
          entry.  SSL support requires the following steps (see the SSL 
Config
          HOWTO in the Tomcat 4.0 documentation bundle for more detailed
          instructions):
          * Download and install JSSE 1.0.2 or later, and put the JAR 
files
            into "$JAVA_HOME/jre/lib/ext".
          * Execute:
              %JAVA_HOME%\bin\keytool -genkey -alias tomcat -keyalg RSA 
(Windows)
              $JAVA_HOME/bin/keytool -genkey -alias tomcat -keyalg RSA  
(Unix)
            with a password value of "changeit" for both the certificate 
and
            the keystore itself.

          By default, DNS lookups are enabled when a web application calls
          request.getRemoteHost().  This can have an adverse impact on
          performance, so you can disable it by setting the
          "enableLookups" attribute to "false".  When DNS lookups are 
disabled,
          request.getRemoteHost() will return the String version of the
          IP address of the remote client.
     -->

     <!-- Define a non-SSL HTTP/1.1 Connector on port 8080 -->
     <Connector 
className="org.apache.catalina.connector.http.HttpConnector"
                port="8080" minProcessors="5" maxProcessors="75"
                enableLookups="true" redirectPort="8443"
                acceptCount="10" debug="0" connectionTimeout="60000"/>
     <!-- Note : To disable connection timeouts, set connectionTimeout 
value
      to -1 -->

     <!-- Define a non-SSL Coyote HTTP/1.1 Connector on port 8081 -->
     <!--
     <Connector className="org.apache.coyote.tomcat4.CoyoteConnector"
                port="8081" minProcessors="5" maxProcessors="75"
                enableLookups="true" redirectPort="8443"
                acceptCount="10" debug="0" connectionTimeout="20000"/>
     -->

     <!-- Define an SSL HTTP/1.1 Connector on port 8443 -->
     <!--
     <Connector 
className="org.apache.catalina.connector.http.HttpConnector"
                port="8443" minProcessors="5" maxProcessors="75"
                enableLookups="true"
	       acceptCount="10" debug="0" scheme="https" secure="true">
       <Factory className="org.apache.catalina.net.SSLServerSocketFactory"
                clientAuth="false" protocol="TLS"/>
     </Connector>
     -->

     <!-- Define an AJP 1.3 Connector on port 8009 -->
     <Connector className="org.apache.ajp.tomcat4.Ajp13Connector"
                port="8009" minProcessors="5" maxProcessors="75"
                acceptCount="10" debug="1"/>


     <!-- Define a Proxied HTTP/1.1 Connector on port 8081 -->
     <!-- See proxy documentation for more information about using 
this. -->
     <!--
     <Connector 
className="org.apache.catalina.connector.http.HttpConnector"
                port="8082" minProcessors="5" maxProcessors="75"
                enableLookups="true"
                acceptCount="10" debug="0" connectionTimeout="60000"
                proxyPort="80"/>
     -->

     <!-- Define a non-SSL HTTP/1.0 Test Connector on port 8082 -->
     <!--
     <Connector 
className="org.apache.catalina.connector.http10.HttpConnector"
                port="8083" minProcessors="5" maxProcessors="75"
                enableLookups="true" redirectPort="8443"
                acceptCount="10" debug="0"/>
     -->

     <!-- An Engine represents the entry point (within Catalina) that 
processes
          every request.  The Engine implementation for Tomcat stand alone
          analyzes the HTTP headers included with the request, and passes 
them
          on to the appropriate Host (virtual host). -->

     <!-- Define the top level container in our container hierarchy -->
     <Engine name="Standalone" defaultHost="localhost" debug="0">

       <!-- The request dumper valve dumps useful debugging information 
about
            the request headers and cookies that were received, and the 
response
            headers and cookies that were sent, for all requests received 
by
            this instance of Tomcat.  If you care only about requests to a
            particular virtual host, or a particular application, nest 
this
            element inside the corresponding <Host> or <Context> entry 
instead.

            For a similar mechanism that is portable to all Servlet 2.3
            containers, check out the "RequestDumperFilter" Filter in the
            example application (the source for this filter may be found 
in
            "$CATALINA_HOME/webapps/examples/WEB-INF/classes/filters").

            Request dumping is disabled by default.  Uncomment the 
following
            element to enable it. -->
       <!--
       <Valve className="org.apache.catalina.valves.RequestDumperValve"/>
       -->

       <!-- Global logger unless overridden at lower levels -->
       <Logger className="org.apache.catalina.logger.FileLogger"
               prefix="catalina_log." suffix=".txt"
               timestamp="true"/>

       <!-- Because this Realm is here, an instance will be shared 
globally -->

       <Realm className="org.apache.catalina.realm.MemoryRealm" />

       <!-- Replace the above Realm with one of the following to get a 
Realm
            stored in a database and accessed via JDBC -->

       <!--
       <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
              driverName="org.gjt.mm.mysql.Driver"
           
connectionURL="jdbc:mysql://localhost/authority?user=test;password=test"
               userTable="users" userNameCol="user_name" 
userCredCol="user_pass"
           userRoleTable="user_roles" roleNameCol="role_name" />
       -->

       <!--
       <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
              driverName="oracle.jdbc.driver.OracleDriver"
           
connectionURL="jdbc:oracle:thin:@ntserver:1521:ORCL?user=scott;password=tiger"
               userTable="users" userNameCol="user_name" 
userCredCol="user_pass"
           userRoleTable="user_roles" roleNameCol="role_name" />
       -->

       <!--
       <Realm  className="org.apache.catalina.realm.JDBCRealm" debug="99"
              driverName="sun.jdbc.odbc.JdbcOdbcDriver"
           connectionURL="jdbc:odbc:CATALINA"
               userTable="users" userNameCol="user_name" 
userCredCol="user_pass"
           userRoleTable="user_roles" roleNameCol="role_name" />
       -->

       <!-- Define the default virtual host -->
       <Host name="localhost" debug="0" appBase="webapps" 
unpackWARs="true">

	  <Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" 
append="true" forwardAll="false" modJk="/usr/libexec/httpd/mod_jk.so"/>
	
	   	
         <!-- Normally, users must authenticate themselves to each web app
              individually.  Uncomment the following entry if you would 
like
              a user to be authenticated the first time they encounter a
              resource protected by a security constraint, and then have 
that
              user identity maintained across *all* web applications 
contained
              in this virtual host. -->
         <!--
         <Valve className="org.apache.catalina.authenticator.SingleSignOn"
                    debug="0"/>
         -->

         <!-- Access log processes all requests for this virtual host.  By
              default, log files are created in the "logs" directory 
relative to
              $CATALINA_HOME.  If you wish, you can specify a different
              directory with the "directory" attribute.  Specify either a 
relative
              (to $CATALINA_HOME) or absolute path to the desired 
directory.
         -->
         <Valve className="org.apache.catalina.valves.AccessLogValve"
                  directory="logs"  prefix="localhost_access_log." 
suffix=".txt"
                  pattern="common"/>

         <!-- Logger shared by all Contexts related to this virtual 
host.  By
              default (when using FileLogger), log files are created in 
the "logs"
              directory relative to $CATALINA_HOME.  If you wish, you can 
specify
              a different directory with the "directory" attribute.  
Specify either a
              relative (to $CATALINA_HOME) or absolute path to the desired
              directory.-->
         <Logger className="org.apache.catalina.logger.FileLogger"
                  directory="logs"  prefix="localhost_log." suffix=".txt"
	        timestamp="true"/>

         <!-- Define properties for each web application.  This is only 
needed
              if you want to set non-default properties, or have web 
application
              document roots in places other than the virtual host's 
appBase
              directory.  -->

         <!-- Tomcat Root Context -->
         <!--
           <Context path="" docBase="ROOT" debug="0"/>
         -->

         <!-- Tomcat Manager Context -->
         <Context path="/manager" docBase="manager"
          debug="0" privileged="true"/>

         <!-- Tomcat Examples Context -->
         <Context path="/examples" docBase="examples" debug="0"
                  reloadable="true" crossContext="true">
           <Logger className="org.apache.catalina.logger.FileLogger"
                      prefix="localhost_examples_log." suffix=".txt"
         	  timestamp="true"/>
           <Ejb   name="ejb/EmplRecord" type="Entity"
                  home="com.wombat.empl.EmployeeRecordHome"
                remote="com.wombat.empl.EmployeeRecord"/>
           <!-- PersistentManager: Uncomment the section below to test 
Persistent
		       Sessions.

                saveOnRestart: If true, all active sessions will be saved
                  to the Store when Catalina is shutdown, regardless of
                  other settings. All Sessions found in the Store will be
                  loaded on startup. Sessions past their expiration are
                  ignored in both cases.
                maxActiveSessions: If 0 or greater, having too many active
                  sessions will result in some being swapped out. 
minIdleSwap
                  limits this. -1 means unlimited sessions are allowed.
                  0 means sessions will almost always be swapped out after
                  use - this will be noticeably slow for your users.
                minIdleSwap: Sessions must be idle for at least this long
                  (in seconds) before they will be swapped out due to
                maxActiveSessions. This avoids thrashing when the site is
                  highly active. -1 or 0 means there is no minimum - 
sessions
                  can be swapped out at any time.
                maxIdleSwap: Sessions will be swapped out if idle for this
                  long (in seconds). If minIdleSwap is higher, then it 
will
                  override this. This isn't exact: it is checked 
periodically.
                  -1 means sessions won't be swapped out for this reason,
                  although they may be swapped out for maxActiveSessions.
                  If set to >= 0, guarantees that all sessions found in 
the
                  Store will be loaded on startup.
                maxIdleBackup: Sessions will be backed up (saved to the 
Store,
                  but left in active memory) if idle for this long (in 
seconds),
                  and all sessions found in the Store will be loaded on 
startup.
                  If set to -1 sessions will not be backed up, 0 means 
they
                  should be backed up shortly after being used.

                To clear sessions from the Store, set maxActiveSessions, 
maxIdleSwap,
                and minIdleBackup all to -1, saveOnRestart to false, then 
restart
                Catalina.
           -->
		  <!--
           <Manager 
className="org.apache.catalina.session.PersistentManager"
               debug="0"
               saveOnRestart="true"
               maxActiveSessions="-1"
               minIdleSwap="-1"
               maxIdleSwap="-1"
               maxIdleBackup="-1">
                 <Store 
className="org.apache.catalina.session.FileStore"/>
           </Manager>
		  -->
           <Environment name="maxExemptions" type="java.lang.Integer"
                       value="15"/>
           <Parameter name="context.param.name" 
value="context.param.value"
                      override="false"/>
           <Resource name="jdbc/EmployeeAppDb" auth="SERVLET"
                     type="javax.sql.DataSource"/>
           <ResourceParams name="jdbc/EmployeeAppDb">
             <parameter><name>user</name><value>sa</value></parameter>
             <parameter><name>password</name><value></value></parameter>
             <parameter><name>driverClassName</name>
               <value>org.hsql.jdbcDriver</value></parameter>
             <parameter><name>driverName</name>
               <value>jdbc:HypersonicSQL:database</value></parameter>
           </ResourceParams>
           <Resource name="mail/Session" auth="Container"
                     type="javax.mail.Session"/>
           <ResourceParams name="mail/Session">
             <parameter>
               <name>mail.smtp.host</name>
               <value>localhost</value>
             </parameter>
           </ResourceParams>
         </Context>

       </Host>

     </Engine>

   </Service>

   <!-- The MOD_WEBAPP connector is used to connect Apache 1.3 with 
Tomcat 4.0
        as its servlet container. Please read the README.txt file coming 
with
        the WebApp Module distribution on how to build it.
        (Or check out the "jakarta-tomcat-connectors/webapp" CVS 
repository)

        To configure the Apache side, you must ensure that you have the
        "ServerName" and "Port" directives defined in "httpd.conf".  Then,
        lines like these to the bottom of your "httpd.conf" file:

          LoadModule webapp_module libexec/mod_webapp.so
          WebAppConnection warpConnection warp localhost:8008
          WebAppDeploy examples warpConnection /examples/

        The next time you restart Apache (after restarting Tomcat, if 
needed)
        the connection will be established, and all applications you make
        visible via "WebAppDeploy" directives can be accessed through 
Apache.
   -->

<!-- Define an Apache-Connector Service -->
   <Service name="Tomcat-Apache">

     <Connector 
className="org.apache.catalina.connector.warp.WarpConnector"
      port="8008" minProcessors="5" maxProcessors="75"
      enableLookups="true" appBase="webapps"
      acceptCount="10" debug="0"/>


     <!-- Replace "localhost" with what your Apache "ServerName" is set 
to -->
     <Engine className="org.apache.catalina.connector.warp.WarpEngine"
      name="Apache" debug="0">


<!-- Global logger unless overridden at lower levels -->
       <Logger className="org.apache.catalina.logger.FileLogger"
               prefix="apache_log." suffix=".txt"
               timestamp="true"/>


<!-- Because this Realm is here, an instance will be shared globally -->
       <Realm className="org.apache.catalina.realm.MemoryRealm" />

     </Engine>

   </Service>


</Server>