JSP开发遇到的Apache+tomcat配置问题,求高手帮忙看看(100分) 首先你确定一下http://localhost/***.jsp 可以看到吗 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 还有,你的apache2.0.47,mod_jk-2.0.42.dll两个版本不同,好像有问题,找一个相同版本的先!! 一、软件准备: 假设你有一台能正常运行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.dll2.设置主页文件类型:打开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.filesize=1048576 # Example socket channel, override port and host.[channel.socket:localhost:8009]port=8009host=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 channelSocketchannelSocket.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> 我也遇到过这问题.你的配置基本没什么问题,不过你下的mod_jk-2.0.42.dll在APACHE2.0下是有问题的.你应该去下mod_jk-2.0.47.dll leojeff(爱上你等于爱上一种艺术)楼上的这位老兄说的太经典了在下感谢了我正在找这样的资料,真是太谢谢了我顶你 leojeff(★爱上你等于爱上一种艺术★) 使用你的方法配置apache的conf文件时,说JkUriSet command error,不知道这是啥东西? 我现在直接用的tomcat,不要apach也是可以的啊 摸索很久,今晚把问题解决。实际的配置基本没有错,唯一的错误在于配置解析servlet时的语句JkMount /servlet/* ajp13 中使用了 /servlet作为context前缀,则对于那些没在web.xml中声明前缀为/servlet的servlet无法解析。最后将上句改为JkMount /* ajp13后问题解决,可以正常显示servlets 并感谢 leojeff(★爱上你等于爱上一种艺术★) 提供的使用mod_jk2进行配置的方法,虽然我用这个方法没有配置正确 strust问题文件下载 谁能解释一下这段代码? Struts/Spring/Hibernate/Ajax 求解决ssh整合出现的异常 字符串分离怎么输出循环? 如何搭建jsp开发平台? 用jspSmartUpload组件的保存问题 在java里如何把字符串转换成日期行。 AOP在SpringMVC的Controller里无效的问题 请教一个html标签的问题,困惑不解。。 应该是WEB开发的一个普通致命性问题,请高手出主意! 高分寻求:如何通过IP地址查询Whois信息?
假设你有一台能正常运行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>
在APACHE2.0下是有问题的.你应该去下mod_jk-2.0.47.dll
楼上的这位老兄说的太经典了
在下感谢了
我正在找这样的资料,真是太谢谢了
我顶你
不知道这是啥东西?
JkMount /servlet/* ajp13
中使用了 /servlet作为context前缀,则对于那些没在web.xml中声明前缀为/servlet的servlet无法解析。
最后将上句改为
JkMount /* ajp13
后问题解决,可以正常显示servlets