未检测到Tomcat 6 Servlet

时间:2013-02-20 07:10:28

标签: java servlets tomcat6

好的,这应该是基本的,我之前通过eclipse和weblogic多次使用过servlet并没有问题。但是对于Tomcat 6,我遇到了Servlet映射问题。

的web.xml:

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
   version="2.5"> 

    <description>
      Servlet and JSP Examples.
    </description>
    <display-name>Servlet and JSP Examples</display-name>
    <servlet>
        <servlet-name>HelloWorldExample</servlet-name>
        <servlet-class>HelloWorldExample</servlet-class>
    </servlet>


    <servlet-mapping>
        <servlet-name>HelloWorldExample</servlet-name>
        <url-pattern>/HelloWorldExample</url-pattern>
    </servlet-mapping>

</web-app>

我的web.xml位于我的WEB-INF文件夹中,我的servlet HelloWorldExample.class位于WEB-INF / classes /

它们都位于tomcat / webapps / ch1 /

据我所知,一切正常,但是经过数小时的试验和错误以及多次重启后,我仍然得到:

  

输入状态报告

     

message / ch1 / HelloWorldExample

     

说明请求的资源不可用。

http://localhost:8080/ch1/HelloWorldExample

目录结构的屏幕截图

folders

如果有人能够指出我在哪里犯错,我会永远感激:)

4 个答案:

答案 0 :(得分:2)

您应该将文件夹“ch1”放在 tomcat / webapps 下,而不是在tomcat / webapps / ROOT下。

请遵循以下文件夹结构:

tomcat:
--webapps
----ch1
--------META-INF
--------WEB-INF
----------classes
----------lib
----------web.xml

答案 1 :(得分:2)

您应该build and export a WAR file并将其部署在Tomcat上,然后它会自动转到正确的位置。另外,请注意web.xml的这一部分:

<servlet>
    <servlet-name>HelloWorldExample</servlet-name>
    <servlet-class>HelloWorldExample</servlet-class>
</servlet>

Servlet类需要是完全限定的类名,即: your.package.classname (如果使用默认包,请忽略,这通常是一种不好的做法)。当你处理这个问题时,我建议你安装Tomcat 7并利用Servlet 3.0的好处,即摆脱web.xml配置并使用servlet注释。更多信息:

答案 2 :(得分:0)

您的ch1文件夹应位于webappswebapps/ROOT

答案 3 :(得分:0)

请将ch1文件夹从webapps移至webapps/ROOT 请记住在此更改后restart the Tomcat Server