Apache与Tomcat整合问题,大家大家帮帮忙!

MYLiao 2004-12-04 05:57:25
今天刚将Apache与Tomcat整合起来,但在调试的时候发现一个问题,百思不得其解,求高手帮忙.如下:
我在apache的配置文件中已经指定如下虚拟目录:
<VirtualHost *:80>
ServerAdmin 123@163.com
DocumentRoot "C:/Tomcat4/webapps/myapp"
ServerName 192.168.0.1
ErrorLog logs/my-error.log
CustomLog logs/my-access.log common
</VirtualHost>
也就是说我已经将默认路径指向myapp目录不是ROOT目录,并且在DirectoryIndex中也配置了默认文件如下:
DirectoryIndex index.html index.html.var index.jsp
myapp目录下的index.jsp和ROOT目录下的index.jsp(是一个有猫的页面)是两个完全不同的文件
但我在浏览器中输入http://192.168.0.1的时候它却显示有猫的ROOT目录下的index.jsp,而不是myapp目录下的index.jsp,当我将myapp目录下的index.jsp文件改成index.html时又能正确显示,于是我怀疑是不是tomcat/conf下的web.xml的设置有问题于是我将web.xml下的<welcome-file-list>下的index.html,index.htm全部去掉,只留下index.jsp,重新启动后,在浏览器中输入http://192.168.0.1,它依然显示ROOT目录下的index.jsp,而不是myapp目录下的index.jsp,真是郁闷大家帮帮忙啊!
...全文
217 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
MYLiao 2004-12-05
  • 打赏
  • 举报
回复
up
MYLiao 2004-12-05
  • 打赏
  • 举报
回复
怎么没人回答啊
MYLiao 2004-12-05
  • 打赏
  • 举报
回复
不是我钻牛角尖,而是我喜欢用各种不同的方式测试,然后试图去解决他,大家有空不妨一试,
看是不是我碰到的这种情况.
MYLiao 2004-12-05
  • 打赏
  • 举报
回复
不就是index.jsp和index.html的区别嘛,为什么明显的不同呢有哪位去测试过吗?
MYLiao 2004-12-05
  • 打赏
  • 举报
回复
楼上兄弟,我刚配置好的时候,
http://localhost 显示的内容 和 http://localhost:8080 显示页面的内容 是一样的,也就是配置成功.
现在我发现的问题就是:
在没有整合之前我们都知道 http://localhost 显示的是apache安装成功的界面;
而 http://localhost:8080 显示的是tomcat安装成功的tom猫的界面,
因为tomcat默认的目录就是ROOT底下index.jsp,
我现在在webapps新建了另一目录myapp,
目录下的index.jsp与ROOT底下index.jsp是两个内容完全不同的文件,
在没有整合之前我在IE窗口中能正确显示 http://localhost:8080/myapp 的内容,它不是tom猫的界面,
现在的问题就是: 我把apache的配置文件指向tomcat的myapp目录,在整合之后,
http://localhost 显示的内容 和 http://localhost:8080 显示页面的内容依然是tom猫的界面,
也就是依然显示 ROOT 下的index.jsp,而不是 myapp 下的index.jsp,
本来应该是显示myapp 下的index.jsp的呀,
但如果此时我将 myapp 下的index.jsp改成index.html之后,
http://localhost 显示的内容 和 http://localhost:8080 显示页面的内容就是myapp下的默认页面了,
我不明白这是为什么.
hongchunliang 2004-12-05
  • 打赏
  • 举报
回复
JDK+apache_2.0.47+tomcat-5.0.19组合配置



――互联网上到目前为止最为全面的好资料(谁说的?作者说的)

作者:weibin (欢迎转载,请保留署名权)

 



为了搭了一个服务器环境,我是跋山涉水,翻山越岭呀,好不容易找了一些相关文档,有许多还因为版本过老而无法使用。花了一整天的时间才配置成功!窃喜,不敢独享!和盘托出,供和我一样的菜鸟们参考,也算是给菜鸟们争口气,同时体现一下自身的存在价值,不能总是参考大虾们的文章,今天咱也“装”上一把大虾,不妥之处,还请真正的大虾指点一二……废话少说,开工!准备材料:

下载点原料(当然是从网上了)



apache2.0.47:

下载地址:

http://apache.te8.com/dist/httpd/binaries/win32/apache_2.0.47-win32-x86-no_ssl.msi



tomcat5:

下载地址:

http://apache.linuxforum.net/dist/jakarta/tomcat-5/v5.0.19/bin/jakarta-tomcat-5.0.19.exe

以上这两个家伙嘛,应该是相当新的版本了!(对今天2004年4月9日来说如此)



JDK

 JDK因为有现成的老版本1.3,虽想用新的,但不想下了,下一个很慢的,所以没下。

 

 另外,还需要一个DLL文件,据说叫联接器(apache就是通过这家伙与TOMCAT连接的),网上说没有与apache_2.0.47相配套的mod_jk_2.0.47.dll不存在,还说可以用mod_jk_2.0.46.dll来代替,但网上所提供的mod_jk_2.0.46.dll的下载地址(http://jakarta.apache.org/builds/jakarta-tomcat-connectors/jk/release/v1.2.4/bin/win32/mod_jk_2.0.46.dll)大约已经被官方网站更改,至少在今天的我是无法下到的,不服气的朋友也可以再试一下,没准可以下到的:)。

我用的是 mod_jk_1.2.5_2.0.47.dll 我怀疑它就是传说中与apache_2.0.47相配套的mod_jk_2.0.47.dll,仅仅是我个人认为(我感觉它们长的很像,直觉告诉我,mod_jk_1.2.5_2.0.47.dll不是mod_jk_2.0.47.dll的孪生兄弟就是它的替身),不知道是不是真实的情况,请知情的人在评论中加以注明,以免我的错误祸害人间,在得到肯定之前,如果想冒险的同志可以大胆偿试,因为我已经试验成功了。好了,不扯别的了!它的下载地址是:

URL http://apache.linuxforum.net/dist/jakarta/tomcat-connectors/jk/binaries/win32/mod_jk_1.2.5_2.0.47.dll

以上的原料准备齐全后,开始工作了!



1、安装JDK(我安到了D盘) 



2、设置我的电脑\属性\高级\环境变量\新建系统变量 变量名:JAVA_HOME 变量值:d:\jdk1.3(指向JDK的实际安装路径)



3、修改系统变量 classpath 编辑变量值中加上 ……;%JAVA_HOME%\bin;%JAVA_HOME%\lib;.;



4、安装apache_2.0.47-win32-x86-no_ssl.msi 安装路径设为:d:\apache2



5、安装jakarta-tomcat-5.0.19.exe 安装路径设为:d:\tomcat5

设置我的电脑\属性\高级\环境变量\新建系统变量 变量名:TOMCAT_HOME 变量值:d:\Tomcat5(指向JDK的实际安装路


径)

修改系统变量 classpath 编辑变量值中加上 ……;%TOMCAT_HOME%\bin;.;



以上三者全部安装后可以先测试一下默认服务:

  

  请先启动Apache2与Tomcat5的服务器.

1).打开浏览器,在地址栏中输入:http://localhost 检验:此时能在浏览器中看到Apache2的欢迎界面.说明Apache2工作正常.(注意,Tomcat默认端口为80,若有其它程序占用,请更改端口号)

2).打开浏览器,在地址栏中输入:http://localhost:8080 检验:此时能在浏览器中看到Tomcat的欢迎界面.说明Tomcat工作正常.(注意,Tomcat默认端口为8080,若有其它程序占用,也请更改端口)

本来Tomcat有自身附带的服务器,但因为功能和稳定性都比较差,所以用专门的Apache服务器代替它自身的服务器,好处嘛,不说也罢,为什么大家都这样用?这总不至于是“流行风气”或者“商业妙作”吧,况且这两个家伙全是免费开源的好东东,所以这就需要二者进行连接。方法如下:



6、把连接器mod_jk_1.2.5_2.0.47.dll COPY到D:\Apache2\modules\下



7、打开d:\Apache2\conf下的httpd.conf,查找"DirectoryIndex",在index.html后添加index.jsp.



8、在httpd.conf最后添加以下代码(目的是设置Apache与Tomcat之间的连接,让Apache遇到jsp文件时,在后台将其交由Tomcat去处理:打开D:\Apache2\conf\httpd.conf,在最后加入下面这段代码并保存。注:每一行#及其后的汉字为注释内容,追加时可以去掉或另起一行加此注释,此处是为了好理解,#为英文半角状态下的符号)





#######--begin--##################



LoadModule jk_module modules/mod_jk_1.2.5_2.0.47.dll

#装载模块,用于处理连接(对上一行的注释,下同)

JkWorkersFile "D:/Tomcat5/conf/workers.properties"

#设置模块的工作文件

JkLogFile "D:/Tomcat5/logs/mod_jk2.log"

#设置模块工作的日志文件,Tocmat启动时会自建

JkLogLevel info



######---end---###################



9、配置tomcat

1).在d:\Tomcat5\conf下新建一个workers.properties文件 .内容如下:



#####--begin--########



workers.tomcat_home=d:\Tomcat5 #让mod_jk模块知道Tomcat

workers.java_home=d:\jdk1.3 #让mod_jk模块知道j2sdk

ps=\

worker.list=ajp13 #模块版本,现有ajp14了,不要修改

worker.ajp13.port=8009 #工作端口,若没占用则不用修改

worker.ajp13.host=localhost #主机,若上面的Apache主机不为localhost,作相应修改

worker.ajp13.type=ajp13 #类型

worker.ajp13.lbfactor=1 #代理数,不用修改

######---end---#######



2).说明 tomcat5里面的server.xml已经包含着AJP1.3,不用修改



10、设置虚拟主机

(其实下文还是默认为tomcat下的项目文件夹,可以另外指定,后文会有详述)将d:\Apache2\conf下的


httpd.conf\httpd.conf中相应部分修改如下

########-beging--########



<VirtualHost localhost> #localhost为本机,你可用本机ip

ServerAdmin weibin975@sohu.com #你的mail地址

DocumentRoot D:\Tomcat5\webapps\ROOT #你的项目组根目录

ServerName localhost

#你的服务名,若你的机器有域名,设为域名,但现用本机作测试

ErrorLog logs/robornet_home_log.txt

#错误日志D:\Apache2\logs下,可用任意名字

CustomLog logs/robornet_Custom_log.txt common

#访问日志,在D:\Apache2\logs下,可用其它任意名字

JkMount /servlet/* ajp13 #让Apache支持对servlet传送,用以Tomcat解析

JkMount /*.jsp ajp13 #让Apache支持对jsp传送,用以Tomcat解析

</VirtualHost>



########-end--########



另外在在本文件中查找“listen”

用于本机测试时:Listen 127.0.0.1:80



11 启动Appache 和 Tomcat 服务器

打开两个IE窗口

http://localhost

http://localhost:8080

以上显示页面的内容一样,则表示已经连接成功!



因为我这儿费了好大的劲儿才显示成功!所以写此文想减少和菜鸟的痛苦,故想写此文!

注:如果用代理上网,代理服务器端口号如果是80或者8080好像也和系统冲突,请停用代理,或者改APACHE和TOMCAT的默认端口号(注:不能为0-1023)


loveyong 2004-12-05
  • 打赏
  • 举报
回复
<Context name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true/">
到底是怎样呀?
umbrella1984 2004-12-05
  • 打赏
  • 举报
回复
修改server.xml的webapps为你的目录了吗

<Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
MYLiao 2004-12-04
  • 打赏
  • 举报
回复
高手们帮帮忙啊
toyysky 2004-12-04
  • 打赏
  • 举报
回复
up
MYLiao 2004-12-04
  • 打赏
  • 举报
回复
自己up一下

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧