码头6 - >码头7.5+给出“没有这样的servlet”异常

问题描述:

我的项目上码头6运行很好,但对码头7.5+(我查了7.5,8.1和9.0),我得到的码头启动No such servlet异常(项目部署,我猜)。码头6 - >码头7.5+给出“没有这样的servlet”异常

的web.xml

<servlet-mapping> 
    <servlet-name>TestServlet</servlet-name> 
    <url-pattern>/TestServlet</url-pattern> 
</servlet-mapping> 
<servlet> 
    <servlet-name>TestServlet</servlet-name> 
    <servlet-class>myproject.servlets.TestServlet</servlet-class> 
</servlet> 

TestServlet.java

public class TestServlet extends HttpServlet { 
    private static final long serialVersionUID = 3992344538270432732L; 

    @Override 
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws IOException { 
     PrintWriter out = response.getWriter(); 
     out.println("<html>"); 
     out.println("<body>"); 
     out.println("<h1>Hello Servlet Get</h1>"); 
     out.println("</body>"); 
     out.println("</html>"); 
    } 
} 
+0

对不起,需要一些线索,你如何运行和部署到码头 –

+0

也添加stacktrace。 –

+0

关于你的'TestServlet.java'的更多细节,特别是'package'和'import'行。 –

倒车web.xml中的顺序解决了这个问题:

<servlet> 
    <servlet-name>TestServlet</servlet-name> 
    <servlet-class>myproject.servlets.TestServlet</servlet-class> 
</servlet> 
<servlet-mapping> 
    <servlet-name>TestServlet</servlet-name> 
    <url-pattern>/TestServlet</url-pattern> 
</servlet-mapping> 

我想以前的版本码头wer e对于servlet声明的顺序没有那么严格。

+1

您的'web.xml'有一个DTD,它应该有助于验证和执行该命令。 –