Reposting the same question I posted a minute ago due to weird formatting issues. Hopefully this email fixes it. I am trying to connect Tomcat 7.0 and Apache Server 2.2 using Windows 7.0. I created a .jsp file to test if my setup was correct under "C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0\webapps\sitepoint\count.jsp". I can successfully load the count.jsp file by entering http://localhost:8080/sitepoint/count.jsp into Google Chrome, however when I enter http://localhost/sitepoint/count.jsp into Chrome I get an "Opps! This link appears to be broken." message. Therefore it appears to be an error in my configurations. Unfortunately I'm puzzled as to the problem and have been trying to look for a solution for the past 2 days without any luck. Here are the details:
Platform: Windows 7.0 Tomcat: 7.0 Apache Server: 2.2 JDK: C:\Program Files (x86)\Java\jdk1.6.0_17 Tomcat: C:\Program Files (x86)\Apache Software Foundation\Tomcat 7.0 Apache: C:\Program Files (x86)\Apache Software Foundation\Apache2.2 This is the process I went through. 1. Installed Apache Server and Tomcat 2. Downloaded the Apache Connector binaries: mod_jk-1.2.31-httpd-2.2.3.so. Renamed this to mod_jk.so and put it in the modules directory of Apache2.2. 3. Downloaded the source files for the same connector and extracted the workers.properties file and placed that into the conf directory of Apache2.2. I left this file unchanged, not sure if I am meant to alter it. 4. I then altered the httpd.conf configurations file inside the conf directory of Apache2.2 and added the following lines (not sure if /easywayserver/ should be used for my example I described earlier) : LoadModule jk_module modules/mod_jk.so JkWorkersFile conf/workers.properties JkLogFile "logs/mod_jk.log" JkLogLevel error JkMount /easywayserver loadbalancer JkMount /easywayserver/* loadbalancer 5. Restarted Apache server. Here is a snipper of my log modjk.log [Fri Mar 04 02:19:51.436 2011] [2276:6344] [info] jk_handler::mod_jk.c (2635): Could not find a worker for worker name=loadbalancer [Fri Mar 04 02:19:55.658 2011] [2368:3752] [info] init_jk::mod_jk.c (3198): mod_jk/1.2.31 (1026297) initialized [Fri Mar 04 02:19:55.658 2011] [2368:3752] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'loadbalancer' in uri map post processing. [Fri Mar 04 02:19:55.658 2011] [2368:3752] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'loadbalancer' in uri map post processing. [Fri Mar 04 02:19:55.737 2011] [5964:6660] [info] init_jk::mod_jk.c (3198): mod_jk/1.2.31 (1026297) initialized [Fri Mar 04 02:19:55.737 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'loadbalancer' in uri map post processing. [Fri Mar 04 02:19:55.737 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'loadbalancer' in uri map post processing. [Fri Mar 04 02:19:55.782 2011] [5964:6660] [info] init_jk::mod_jk.c (3198): mod_jk/1.2.31 (1026297) initialized [Fri Mar 04 02:19:55.782 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'loadbalancer' in uri map post processing. [Fri Mar 04 02:19:55.782 2011] [5964:6660] [error] uri_worker_map_ext::jk_uri_worker_map.c (506): Could not find worker with name 'loadbalancer' in uri map post processing. Here is the workers.properties file ===Start of workers.properties========================== # Licensed to the Apache Software Foundation (ASF) under one or more # contributor license agreements. See the NOTICE file distributed with # this work for additional information regarding copyright ownership. # The ASF licenses this file to You under the Apache License, Version 2.0 # (the "License"); you may not use this file except in compliance with # the License. You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # Note that the distributed version of this file requires modification # before it is usable. # # Reference documentation: http://tomcat.apache.org/connectors-doc/reference/workers.html # # As a general note, the characters $( and ) are used internally to define # macros. Do not use them in your own configuration!!! # # Whenever you see a set of lines such as: # x=value # y=$(x)\something # # the final value for y will be value\something # Define two status worker: # - jk-status for read-only use # - jk-manager for read/write use worker.list=jk-status worker.jk-status.type=status worker.jk-status.read_only=true worker.list=jk-manager worker.jk-manager.type=status # We define a load balancer worker # with name "balancer" worker.list=balancer worker.balancer.type=lb # error_escalation_time: seconds, default = recover_time/2 (=30) # Determines, how fast a detected error should switch from # local error state to global error state # Since: 1.2.28 worker.balancer.error_escalation_time=0 # - max_reply_timeouts: number, default=0 # If there are to many reply timeouts, a worker # is put into the error state, i.e. it will become # unavailable for all sessions residing on the respective # Tomcat. The number of tolerated reply timeouts is # configured with max_reply_timeouts. The number of # timeouts occuring is divided by 2 once a minute and the # resulting counter is compared against max_reply_timeouts. # If you set max_reply_timeouts to N and the errors are # occuring equally distributed over time, you will # tolerate N/2 errors per minute. If they occur in a burst # you will tolerate N errors. # Since: 1.2.24 worker.balancer.max_reply_timeouts=10 # Now we add members to the load balancer # First member is "node1", most # attributes are inherited from the # template "worker.template". worker.balancer.balance_workers=node1 worker.node1.reference=worker.template worker.node1.host=localhost worker.node1.port=8109 # Activation allows to configure # whether this node should actually be used # A: active (use node fully) # D: disabled (only use, if sticky session needs this node) # S: stopped (do not use) # Since: 1.2.19 worker.node1.activation=A # Second member is "node2", most # attributes are inherited from the # template "worker.template". worker.balancer.balance_workers=node2 worker.node2.reference=worker.template worker.node2.host=localhost worker.node2.port=8209 # Activation allows to configure # whether this node should actually be used # A: active (use node fully) # D: disabled (only use, if sticky session needs this node) # S: stopped (do not use) # Since: 1.2.19 worker.node2.activation=A # Finally we put the parameters # which should apply to all our ajp13 # workers into the referenced template # - Type is ajp13 worker.template.type=ajp13 # - socket_connect_timeout: milliseconds, default=0 # Since: 1.2.27 worker.template.socket_connect_timeout=5000 # - socket_keepalive: boolean, default=false # Should we send TCP keepalive packets # when connection is idle (socket option)? worker.template.socket_keepalive=true # - ping_mode: Character, default=none # When should we use cping/cpong connection probing? # C = directly after establishing a new connection # P = directly before sending each request # I = in regular intervals for idle connections # using the watchdog thread # A = all of the above # Since: 1.2.27 worker.template.ping_mode=A # - ping_timeout: milliseconds, default=10000 # Wait timeout for cpong after cping # Can be overwritten for modes C and P # Using connect_timeout and prepost_timeout. # Since: 1.2.27 worker.template.ping_timeout=10000 # - connection_pool_minsize: number, default=connection_pool_size # Lower pool size when shrinking pool due # to idle connections # We want all connections to be closed when # idle for a long time in order to prevent # firewall problems. # Since: 1.2.16 worker.template.connection_pool_minsize=0 # - connection_pool_timeout: seconds, default=0 # Idle time, before a connection is eligible # for being closed (pool shrinking). # This should be the same value as connectionTimeout # in the Tomcat AJP connector, but there it is # milliseconds, here seconds. worker.template.connection_pool_timeout=600 # - reply_timeout: milliseconds, default=0 # Any pause longer than this timeout during waiting # for a part of the reply will abort handling the request # in mod_jk. The request will proceed running in # Tomcat, but the web server resources will be freed # and an error is send to the client. # For individual requests, the timeout can be overwritten # by the Apache environment variable JK_REPLY_TIMEOUT. # JK_REPLY_TIMEOUT since: 1.2.27 worker.template.reply_timeout=300000 # - recovery_options: number, default=0 # Bit mask to configure, if a request, which was send # to a backend successfully, should be retried on another backend # in case there's a problem with the response. # Value "3" disables retries, whenever a part of the request was # successfully send to the backend. worker.template.recovery_options=3 ===End of workers.properties===========================