我在eclipse中创建了一个tomcat project,默认放在workplace的testservlet文件夹然后我创建了一个servlet文件Test.java,放在testservlet\WEB-INF\src下,编译后的类文件放在testservlet\WEB-INF\classes下,修改WEB-INF下的Web.xml文件为: <?xml version="1.0" encoding"ISO-8859-1"?> 
<!DOCTYPE web-app 
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.2//EN" 
"http://java.sun.com/j2ee/dtds/web-app_2_2.dtd"> 
<web-app> 
<servlet> 
<servlet-name>Test</servlet-name> 
<servlet-class>Test</servlet-class> 
</servlet> 
<servlet-mapping> 
<servlet-name>Test</servlet-name> 
<url-pattern>/Test</url-pattern> 
</servlet-mapping> 
</web-app> 
最后在浏览器下输入http://localhost:8080/testservlet/Test ,但结果却是: 
HTTP Status 404 - /testservlet/Test ------------------------------------------------------------------------ type Status report message /testservlet/Test description The requested resource (/testservlet/Test) is not available. 
------------------------------------------------------------------------ Apache Tomcat/6.0.10 
后来我又把testservlet的整个文件复制到 tomcat的安装目录的webapps目录下,重新在浏览器输入http://localhost:8080/testservlet/Test ,结果还是一样,请问这是为什么?? 
顺便说一下,server.xml已经被eclise自动加上了 
<Context path="/testservlet" reloadable="true" docBase="D:\eclipse\workspace\testservlet" workDir="D:\eclipse\workspace\testservlet\work" /> 
而且我的Test.java文件是绝对没有错的.请问是不是我的Web.xml配置错了?还是其它的错误? 

解决方案 »

  1.   

    改为:
    <web-app>
    <servlet>
    <servlet-name>Test</servlet-name>
    <servlet-class>Test</servlet-class>
    </servlet>
    <servlet-mapping>
    <servlet-name>Test</servlet-name>
    <url-pattern>/testservlet/Test</url-pattern>
    </servlet-mapping>
    </web-app>
      

  2.   

    但是如果我把Test.class文件放在tomcat的安装目录下的webapps\examples\WEB-INF\classes,然后跟按照上面的Web.xml的配置添加到webapps\examples\WEB-INF下的Web.xml上,再在浏览器输入http://localhost:8080/examples/Test却可以运行,但在上面提到的两种情况下却运行不了,真是让我搞不明白
      

  3.   

    你看一下你的工程目录结构就会发现eclipse把所有的 CLASS文件放在了一个和你源文件目录结构相同的一系列目录下了,那个结构下所有的文件都是CLASS文件
    TOMCAT在运行SERVLET的时候直接用的是CLASS文件,而不是你的源文件,如果在我说的那个目录下没有CLASS文件就会报错
      

  4.   

    看一下你的 testServlet/WEB-INF/classes  中有没有那个class 文件!!
      

  5.   

    servlet文件Test.java,放在testservlet\WEB-INF\src下有问题
    不该把Test.java放在WEB-INF\src把src提出来,servlet文件不该放在WEB-INF下,当编译servlet文件时,自动把.class 文件放到
    WEB-INF下的classes下了!试试看!
      

  6.   

    还是不行,我的Test.class文件确实有放在testservlet\WEB-INF\classes文件下,还有楼上的那个方法我刚才试了一下也不行
      

  7.   

    不好意思,最后找出的错误原因是Web.xml这个文件名的W不能大写,只能小写,就是只能这样写web.xml才对,都被我的那本书误导了,因为书上面就是写成大写的,哎...,害得我白忙了几天,无语......