最近学习servlet出了问题,很奇怪,就是找不到原因。
情况如下:
将项目直接部署到Tomcat6.0的webapps下,JSP和servlet都能正常访问。
但如果在Tomcat/conf/Catalina/localhost下新建一个xml,配置虚拟路径,然后将项目部署到虚拟路径下,JSP能正常访问,但servlet就访问不了,报404错误。项目文件下已经生成了相应的class文件了的。
The requested resource (/struts1/testservlet/servlet/TestServlet) is not available.
我试了用Tomcat5.5还是会有相同状况。
找了很久都找不到原因,麻烦大家给点建议啊!!!
看来这个目录应该是F:/myweb/struts1/testservlet才对 呵呵
struts1/testservlet/servlet/TestServlet
你的TestServlet类的包含是struts1.testservlet.servlet吗,我怀疑是类文件的目录结构不对导致
部署到自定义的虚拟目录struts1下,也不是这么访问 的,不能加struts1的,
http://localhost:8081/struts1/testservlet/servlet/TestServlet
你没没搞清楚
在Tomcat/conf/Catalina/localhost下新建一个xml,配置虚拟路径来访问的方式
把你的配置的xml粘出来分析就知道了
1.贴出xml文件
2.贴出你的TestServlet的类全名
很有可能是中间多了一层目录
http://localhost:8081/struts1/servlet/TestServlet访问
解决TOMCAT5.5配置虚拟路径出现404误 http://www.iteye.com/topic/145835
看是不是这个错误
那应该是这么访问的
http://localhost:8081/struts1/servlet/TestServlet
<Context path="/struts1" 这个path就代表了根目录访问上下文
[color=blue]
http://localhost:8081/struts1/testservlet/servlet/TestServlet
改为:
[color=blue]http://localhost:8081/struts1/servlet/TestServlet
[/color]
因为你的Servlet映射如下:
[code="xml"]
TestServlet
/servlet/TestServlet
[/code]
[color=blue]http://localhost:8081/struts1/testservlet/servlet/TestServlet
改为:
http://localhost:8081/struts1/servlet/TestServlet [/color]
Servlet的映射配置说明:其访问路径是:context+“/servlet/TestServlet”
[code="xml"]
TestServlet
/servlet/TestServlet
[/code]
结合你的context配置:
[code="xml"]
<?xml version="1.0" encoding="UTF-8"?>
debug="0" reloadable="true" privileged="true"
crossContext="true">
[/code]
正确的访问路径是:[b]http://localhost:8081/struts1/servlet/TestServlet[/b]
请问web.xml是在struts1目录中呢?
还是在struts1的子目录中?
如果在struts1的字目录中的话
那么lz的
[code="xml"]
debug="0" reloadable="true" privileged="true"
crossContext="true">
[/code]
中的docBase应该改为struts1的子目录
docBase="F:/myweb/struts1/testservlet/WebRoot"
检查一下web.xml文件 看一下是不是那个地方写错了
首先按照servlet的路径正常配置servlet,(相信你懂的),然后直接在引用的时候引用servlet的名字即可,千万不要再引用包名!我犯得是这个错误