Tomcat中找不到servlet

最近学习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的名字即可,千万不要再引用包名!我犯得是这个错误