-1

私のプロジェクトは Jetty 6 で問題なく動作しますが、Jetty 7.5+ (7.5、8.1、および 9.0 を確認しました) ではNo such servlet、Jetty の起動時に例外が発生します (プロジェクトの展開だと思います)。

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>");
    }   
}
4

1 に答える 1

3

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>

以前のバージョンの Jetty は、サーブレット宣言の順序についてそれほど厳密ではなかったと思います。

于 2013-05-22T11:12:09.827 に答える