首先你确定一下http://localhost/***.jsp 可以看到吗

解决方案 »

  1.   

    还有,你的apache2.0.47,mod_jk-2.0.42.dll两个版本不同,好像有问题,找一个相同版本的先!!
      

  2.   

    一、软件准备:
      假设你有一台能正常运行win2000的硬软软件环境。
      1.j2sdk1.4.1_02:到http://java.sun.com/j2se/1.4.1/download.html 下载!(注意是Windows (all languages, including English)的sdk版)
      2.Apache2.0.45: 到http://www.apache.inetcosmos.org/dist/httpd/binaries/win32/ 下载!
      3.Tomcat4.1.24:到http://jakarta.apache.org/builds/jakarta-tomcat-4.0/release/ 下载!
      4.mod_jk2-2.0.43.dll:  到http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk2/release/ 下载! 
    二、软件安装:
      (1)安装j2sdk:
         1.按照安装向导进行安装(一般安装到C:\j2sdk1.4.1下,方便下面操作)
      (2)安装apache:
         1.按照安装向导进行安装(选择安装目录为C:\,方便下面操作;安装成功后其路径为:C:\Apache2)
      (3)安装Tomcat:
         1.按照安装向导进行安装(更改安装目录为C:\Tomcat4,若只是测试,没必要把tomcat安装成Services,方便下面操作),
           其间会要你输入Admin(系统管理员)的口令。 
    三、首次配置及测试:
      对以上安装的软件环境进行首次配置,并测试其环境。
      (1)配置--环境变量:
           1.新建系统变量JAVA_HOME,其值为:C:\j2sdk1.4.1 //若你没按以上路径安装请更改为正确的路径
    2.新建系统变量CATALINA_HOME,其值为:C:\Tomcat4  //同上
    3.新建系统变量CLASSPATH,其值为:%JAVA_HOME%\lib;%CATALINA_HOME%\lib
      (2)修改错误:
           1.Apache2.0.45有一个小问题,默认安装成功后在Apache2主目录下的htdocs目录中没有index.html文件,你须将该目录下的index.html.en改名为index.html
      (3)测试默认服务:
           请先运行Apache2与Tomcat.
           1.打开浏览器,在地址栏中输入:http://localhost 检验:此时能在浏览器中看到Apache2的欢迎界面.说明Apache2工作正常.(注意,Apache默认端口为80, 若有其它程序占用,请更改,下面有说明)
    2.打开浏览器,在地址栏中输入:http://localhost:8080 检验:此时能在浏览器中看到Tomcat的欢迎界面.说明Tomcat工作正常.(注意,Tomcat默认端口为8080,若有其它程序占用,请更改,下面有说明) 
          小结:若到此步骤没有任何错误,那可继续下面的操作。
     
    四、整合配置:
      对Apache与Tomcat做相应的配置,让其共同为你工作。
      若Apache2与Tomcat4正运行着,请关闭它们。
      (1)配置Apache2:
           1.先将下载的mod_jk2-2.0.43.dll复制到C:\Apache2\modules下。并在httpd.conf 最后加入LoadModule jk2_module modules/mod_jk2-2.0.43.dll
    2.设置主页文件类型:打开C:\Apache2\conf下的httpd.conf,查找DirectoryIndex",在index.html的后面添加index.jsp并保存,注意相互之间应有空格。
    3.设置语言:在C:\Apache2\conf\httpd.conf中增加 AddLanguage zh-cn .cn  修改 AddDefaultCharset gb2312 //支持中文
    4.设置虚拟主机,让Apache自动控制html与jsp的解析: 打开C:\Apache2\conf\httpd.conf,在最后加入下面这段代码并保存。NameVirtualHost * (去掉注释) 
    <VirtualHost * >  
    ServerAdmin [email protected]  //你的mail地址
    DocumentRoot  "C:\Tomcat4\webapps"
    ServerName localhost         //你的服务名,若你的机器有域名,设为域名,但现用本机作测试
    ErrorLog logs/davisye_home_log.txt  //错误日志,在C:\Apache2\logs下,可用其它任意名字
    CustomLog logs/davisye_Custom_log.txt common //访问日志,在C:\Apache2\logs下,可用其它任意名字 
       <Location "/*.jsp">
           JkUriSet worker ajp13:localhost:8009 
       </Location> 
       <Location "/examples/servlet/*">  // 如果想运行examples 下面的Servlet 请加上这一段,如果是实际开发可根据自已的Servlet路径进行设置
           JkUriSet worker ajp13:localhost:8009 
       </Location> 
    </VirtualHost> 
           5.在C:\apache2\conf下新建文件:workers2.properties,其下为内容: 
    # only at beginnin. In production uncomment it out
    [logger.apache2]
    level=DEBUG 
    [shm]
    file=${serverRoot}/logs/shm.file
    size=1048576 
    # Example socket channel, override port and host.
    [channel.socket:localhost:8009]
    port=8009
    host=127.0.0.1 
    # define the worker
    [ajp13:localhost:8009]
    channel=channel.socket:localhost:8009 
    # Uri mapping
    [uri:/*.jsp]
    worker=ajp13:localhost:8009 
    (2)配置Tomcat4: 
    Tomcat端通过jk2.properties文件使用JK2。在[Tomcat_install_dir]/conf目录中已经有jk2.properties文件,用如下内容覆盖原内容: 
    # list of needed handlers.
    handler.list=channelSocket,request
    # Override the default port for the channelSocket
    channelSocket.port=8009 
    五、全线测试:
          在地址栏中输入http://localhost/ 如果可以运行Tomcat 下的Examples ,那恭喜你,Apache2与Tomcat4整合成功了!!! 
    六、虚拟主机的配置 
    (1) Apache 配置(httpd.conf)
    1、NameVirtualHost *
    2、虚拟主机设置
    <VirtualHost * >  
    ServerAdmin [email protected]  //你的mail地址
    DocumentRoot  "C:\project\XXX" //项目的根目录
    ServerName www.xxx.com         //域名
    ErrorLog logs/xxx_home_log.txt  //错误日志,在C:\Apache2\logs下,可用其它任意名字
    CustomLog logs/xxx_log.txt common //访问日志,在C:\Apache2\logs下,可用其它任意名字 
       <Location "/*.jsp">
           JkUriSet worker ajp13:localhost:8009 
       </Location> 
       <Location "/servlet/*">  // Servlet路径
           JkUriSet worker ajp13:localhost:8009 
       </Location> 
    </VirtualHost>
    3、workers2.properties 设置,(最好把以前的[uri./*.jsp]去掉)
    [uri:www.xxx.com/*.jsp]
    worker=ajp13:localhost:8009 
    4、Tomcat 配置 (servet.xml),在</host> 后面加上
    <Host name="www.xxx.com" debug="0" appBase="C:\project\XXX" unpackWARs="true" autoDeploy="true">
    <Context path="" docBase="/" debug="1"/>
    <Valve className="org.apache.catalina.valves.AccessLogValve"
            directory="logs"  prefix="xxx_access_log." suffix=".txt"
            pattern="common" resolveHosts="false"/>
    </Host>
      

  3.   

    我也遇到过这问题.你的配置基本没什么问题,不过你下的mod_jk-2.0.42.dll
    在APACHE2.0下是有问题的.你应该去下mod_jk-2.0.47.dll
      

  4.   

    leojeff(爱上你等于爱上一种艺术)
    楼上的这位老兄说的太经典了
    在下感谢了
    我正在找这样的资料,真是太谢谢了
    我顶你
      

  5.   

    leojeff(★爱上你等于爱上一种艺术★) 使用你的方法配置apache的conf文件时,说JkUriSet  command error,
    不知道这是啥东西?
      

  6.   

    我现在直接用的tomcat,不要apach也是可以的啊
      

  7.   

    摸索很久,今晚把问题解决。实际的配置基本没有错,唯一的错误在于配置解析servlet时的语句
    JkMount /servlet/* ajp13 
    中使用了  /servlet作为context前缀,则对于那些没在web.xml中声明前缀为/servlet的servlet无法解析。
    最后将上句改为
    JkMount /* ajp13
    后问题解决,可以正常显示servlets
      

  8.   

    并感谢 leojeff(★爱上你等于爱上一种艺术★) 提供的使用mod_jk2进行配置的方法,虽然我用这个方法没有配置正确