你和我以前的遭遇差不多,也是按许多中文帖子都不能完全做成功。http://expert.csdn.net/Expert/topic/2512/2512850.xml?temp=.1761133
在这个帖子上有本人翻译的一个例子,按照它做很容易成功。

解决方案 »

  1.   

    Win2000下 Tomcat4.1.12+Apache2.0.43 详细设置  
       
    一.软件安装及PATH等设置:  
    按照J2SDK1.4.1,Apache2.0.43,Tomcat4.1.12的顺序安装就是了。  
    我安装的目录分别是: 
         J2SDK1.4.1 d:\jhome\j2sdk 
         Apache2.0.43 d:\jhome\Apache2 
         Tomcat4.1.12 d:\jhome\Tomcat4.1 
    然后再分别设置系统环境变量:CLASSPATH,PATH,JAVA_HOME,CATALINA_HOME, 
         classpath D:\jhome\j2sdk\lib\tools.jar;D:\jhome\j2sdk\lib\dt.jar (jdk标准类库的路径) 
         PATH D:\jhome\j2sdk\bin (jdk程序 java.exe javac.exe的路径) 
         JAVA_HOME D:\jhome\j2sdk (jdk 的安装路径) 
         CATALINA_HOME D:\jhome\Tomcat4.1 (tomcat 的安装路径) 
         Tomcat_home D:\jhome\Tomcat4.1 (tomcat的安装路径) 二.整合配置:  
    1. 下载mod_jk2-2.0.43.dll 
    (地址:http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/v2.0.1/bin/win32/mod_jk2-2.0.43.dll),并将它复制到APACHE2安装目录下的modules子目录下。  2. 编辑APACHE2的配置文件httpd.conf,在文件的最后加上以下几行。  
    LoadModule jk2_module modules/mod_jk2-2.0.43.dll  
    ServerAdmin webmaster@zhangbin  
    DocumentRoot "D:/jhome/Tomcat4.1/webapps"  
    ServerName zhangbin 
    DirectoryIndex index.htm index.html index.jsp 其中DocumentRoot一行要与自己的TOMCAT安装目录一致。DirectoryIndex一行是为了自动解释JSP类型的文件。  3. 在APACHE2安装目录的conf子目录下加入文件workers2.properties,其内容如下:  # Define the communication channel  
    [channel.socket:localhost:8009]  
    info=Ajp13 forwarding over socket  
    tomcatId=localhost:8009  
    # Map All webapp to the Web server uri space  
    [uri:/*]  
    info=Map the whole webapp      其中,URI的部分不一定按上面的定义,可以设置对自己有用的子路径。比如只想公开examples子目录下的东东时,可以如下定义:  
    # Map the Tomcat examples webapp to the Web server uri space  
    [uri:/examples/*]  
    info=Map the whole webapp  4. 这里使用Tomcat4.1.12中缺省定义的有关端口8009的监视器,无需再作任何修正(除非是你自己已经改动了^_^)。  三.测试:  
         分别起动APACHE和TOMCAT(不用区分顺序),然后打开浏览器,输入http://localhost/,在上面URI配置的情况下应该显示出TOMCAT的欢迎界面。  
      
      

  2.   

    按照 lhbf() 这位仁兄翻译的文档配置,还是有问题。
    自己新建的日志文件stdout、stderr是空的,日志信息是在 c:\Apache2\logs\error.log
    文件里,该日志文件列出的错误信息为:
    [error] Can't find class org/apache/jk/apr/AprImpl
    [error] workerEnv.initWorkers() init failed for worker.jni:onStartup
    [error] mod_jk child init 1 0
    [error] workerEnv.initWorkers() init failed for worker.jni:onStartup
    [error] mod_jk child init 1 0
    [error] mod_jk child workerEnv in error state 1
    [error] channelSocket.open() connect failed localhost:8009 61 Unknown error
    [error] ajp13.connect() failed ajp13:localhost:8009
    [error] ajp13.service() failed to connect endpoint errno=61 Unknown error
    [error] ajp13.service() Error  forwarding ajp13:localhost:8009 1 1
    [error] lb.service() worker failed 120000 for ajp13:localhost:8009
    [error] lb.service() worker failed 120000 for ajp13:jni
    [error] lb.service() unrecoverable error...
    [error] mod_jk.handler() Error connecting to tomcat 120000
      

  3.   

    同时启动Tomcat和Apache,没有问题,
    只启动Apache就不行,可是按照文档中所述,不用启动Tomcat。
      

  4.   

    关于这个问题前段时间我也参考过许多中文介绍,按照这些介绍的做不是不能成功就是
    连接不能用mod_jk2。没办法去找英文资料,按照其介绍很快就搞定了
    该资料的位置是:http://www.gregoire.org/howto/Apache2_Jk2_TC4.1.x_JSDK1.4.x.html为了方便大家我也试着把该文翻译了一下(我很少翻译文章,里面可能有许多错误
    大家不妨指教指教)在WIN2000下如何配置Apache2,Tomcat4.1.x,mod_jk2,JSDK1.4
    注:为了尽量减少路径名的麻烦,在Windows中尝试使用短的安装目录名。并且不要尝试使用带有空格的名称,Apache和Tomcat还有我所知的所有.XML文件对此都有问题,它要求对所有的带有空格的名称都要用双引号括起来。为了避免这些头疼的问题最好不要这样做。
    注:仔细的计划安装路径将是一件好事情。例如,结合Apache的根目录与Tomcat的webapp目录可以导致靠Tomcat4.1.10自动配置应用。我没有试这样的配置,你在心里明白这个道理就可以了,而且它听起来是个好主意。安装 J2sdk1.4.x
    J2sdk
    (确保你得到其1.4版的Windows最新版本)
    无须安装src或示例。你只需要选取“JRE for windows drive only”选项,除非你想去编辑注册表并在JSDK中指出jvm.dll的键值。可以很容易地采用缺省的选项完成整个安装过程,没有问题,这里你选择安装sun的JSDK安装直到将JRE放到“Program Files”目录。我选择的安装路径是c:\java,这样能够使它保持简单。
    为Java主目录设置系统环境变量。
    JAVA_HOME=c:\java
    添加JAVA_HOME和JAVA_HOME\bin目录到系统变量PATH,在我的这种情况下是
    c:\java;c:\java\bin安装Apache2.0.43
    Apache2
    获取最新版本,为你的系统下载正确的程序。有一种以.exe结尾的是为那些还没有msi安装器的人准备的,更常用的,一种较小的.msi包将适合大多数人。建一个好的短的没有任何空格的路径作为安装目录。我的是c:\Apache2
    在安装时设置域名和服务器名到你的服务器名,或者如果你仅仅是为了测试就设置成localhost,这样将仅能从本机上访问。安装 Tomcat4.1.x
    Tomcat
    获取最新发行版本。在写本文时是4.1.12版。你必须获取Tomcat的LE版本。JDK1.4.x已有一个XML解析器被安装,获取Tomcat的LE版本就是因为这个原因。在安装期间你不必选取for NT service的选项。再一次确保选择一个好的短的没有任何空格的安装目录。我的是c:\Tomcat
    为Tomcat主目录设置环境变量。同时也添加一个Cataline主目录可能是个好主意。
    TOMCAT_HOME=c:\Tomcat
    CATALINA_HOME=c:\Tomcat安装和配置mod_jk2.dll
    mod_jk2.dll
    获取mod_jk2.dll的最新版本并将它保存到APACHE_HOME/modules目录。新的modules是按版本命名的以标识它们对应不同的Apache版本。你可以重新命名它们为mod_jk2.dll或者改变LoadModule语句去匹配你正安装的版本。不管在那种情况下,module名与LoadModule语句都必须匹配。我就是重命名module为mod_jk2.dll。
    在你的httpd.conf文件的LoadModule节的开始处加上这个LoadModule语句LoadModule jk2_module modules/mod_jk2.dll在你的APACHE_HOME/logs目录,你需要生成三个空文件。
    Stdout.log
    Stderr.log
    Jk2.shm添加workers2.properties
    剪切与粘贴下面的workers2.properties文件到APACHE_HOME/conf 目录。有大量额外的材料在这之后要实验。(编辑路径以适合你的情况)[logger]
    level=DEBUG
     
    [config:]
    #file=${serverRoot}/conf/workers2.properties
    file=c:/Apache2/conf/workers2.properties
    debug=0
    debugEnv=0
     
    [uriMap:]
    info=Maps the requests. Options: debug
    debug=0
     
    # Alternate file logger
    #[logger.file:0]
    #level=DEBUG
    #file=${serverRoot}/logs/jk2.log
     
    [shm:]
    info=Scoreboard. Required for reconfiguration and status with multiprocess servers
    file=${serverRoot}/logs/jk2.shm
    size=1000000
    debug=0
    disabled=0
     
    [workerEnv:]
    info=Global server options
    timing=1
    debug=0
    # Default Native Logger (apache2 or win32 ) 
    # can be overriden to a file logger, useful 
    # when tracing win32 related issues
    #logger=logger.file:0
     
    [lb:lb]
    info=Default load balancer.
    debug=0
     
    #[lb:lb_1]
    #info=A second load balancer.
    #debug=0
     
    [channel.socket:localhost:8009]
    info=Ajp13 forwarding over socket
    debug=0
    tomcatId=localhost:8009
     
    #[channel.socket:localhost:8019]
    #info=A second tomcat instance. 
    #debug=0
    #tomcatId=localhost:8019
    #lb_factor=1
    #group=lb
    #group=lb_1
    #disabled=0
     
    #[channel.un:/opt/33/work/jk2.socket]
    #info=A second channel connecting to localhost:8019 via unix socket
    #tomcatId=localhost:8019
    #lb_factor=1
    #debug=0
     
    [channel.jni:jni]
    info=The jni channel, used if tomcat is started inprocess
     
    [status:]
    info=Status worker, displays runtime informations
     
    [vm:]
    info=Parameters used to load a JVM in the server process
    #JVM=C:\jdk\jre\bin\hotspot\jvm.dll
    OPT=-Djava.class.path=c:/Tomcat/bin/tomcat-jni.jar;c:/Tomcat/server/lib/commons-logging.jar
    OPT=-Dtomcat.home=${TOMCAT_HOME}
    OPT=-Dcatalina.home=${TOMCAT_HOME}
    OPT=-Xmx128M
    #OPT=-Djava.compiler=NONE
    disabled=0
     
    [worker.jni:onStartup]
    info=Command to be executed by the VM on startup. This one will start tomcat.
    class=org/apache/jk/apr/TomcatStarter
    ARG=start
    disabled=0
    stdout=c:/Apache2/logs/stdout.log
    stderr=c:/Apache2/logs/stderr.log
     
    [worker.jni:onShutdown]
    info=Command to be executed by the VM on shutdown. This one will stop tomcat.
    class=org/apache/jk/apr/TomcatStarter
    ARG=stop
    disabled=0
     
    [uri:/jkstatus/*]
    info=Display status information and checks the config file for changes.
    group=status:
     
    #[uri:127.0.0.1:8003]
    #info=Example virtual host. Make sure myVirtualHost is in /etc/hosts to test it
    #alias=myVirtualHost:8003
     
    #[uri:127.0.0.1:8003/ex]
    #info=Example webapp in the virtual host. It'll go to lb_1 ( i.e. localhost:8019 )
    #context=/ex
    #group=lb_1
     
    [uri:/examples]
    info=Example webapp in the default context. 
    context=/examples
    debug=0
     
    #[uri:/examples1/*]
    #info=A second webapp, this time going to the second tomcat only.
    #group=lb_1
    #debug=0
     
    [uri:/examples/servlets/*]
    info=Prefix mapping
     
    [uri:/examples/*.jsp]
    info=Extension mapping
     
    [uri:/examples/*]
    info=Map the whole webapp
     
    [uri:/examples/servlets/HelloW]
    info=Exampel with debug enabled.
    debug=10
    添加jk2.properties
    剪切与粘贴下面的jk2.properties文件到TOMCAT_HOME\conf目录。(编辑路径以适合你的情况)
    ## THIS FILE MAY BE OVERRIDEN AT RUNTIME. MAKE SURE TOMCAT IS STOPED
    ## WHEN YOU EDIT THE FILE.
     
    ## COMMENTS WILL BE _LOST_
     
    ## DOCUMENTATION OF THE FORMAT IN JkMain javadoc.
     
    # Override the default port for the socketChannel
    # channelSocket.port=8019
    # Default: 
    # channelUnix.file=${jkHome}/work/jk2.socket
    # Just to check if the the config  is working
    shm.file=c:/Apache2/logs/jk2.shm
     
    # In order to enable jni use any channelJni directive
    channelJni.disabled = 0
    # And one of the following directives:
     
    # apr.jniModeSo=/opt/apache2/modules/mod_jk2.so
     
    # If set to inprocess the mod_jk2 will Register natives itself
    # This will enable the starting of the Tomcat from mod_jk2
    apr.jniModeSo=inprocess
      

  5.   

    to  lkpei(飞翔鸟)兄 
    转贴文章还是请注明出处的好!to zi_feng(beginner)
    换一个tomcat的版本试一下。
      

  6.   

    终于成功了!!!可能就是Tomcat版本的问题。
    我把tomcat-4.1.29-LE-jdk14换成tomcat-4.1.24-LE-jdk14就OK了!!!我修改C:\Tomcat 4.1\conf\server.xml文件,指定自己的项目的路径。
    需要修改哪些内容才能使Apache也能识别出这个目录。
    例如有这样一个目录G:\webapps ,在浏览器中输入Http://localhost/webapps
      

  7.   

    在workers2.properties文件中添加如下几条:[uri:/webapps]
    context=/webapps
    debug=0[uri:/webapps/servlets/*]
    info=Prefix mapping[uri:/webapps/*]
    info=Map the whole webapp不过建议不要用webapps这样一个目录,因为这是tomcat的缺省目录,防止引起不必要的麻烦。