2

Tomcat 7.0.37 と Eclipse 3.7 でサンプル サーブレットを開発しています。私の現在の問題は、それを実行可能にすることです:(

//...imports and so on...

@WebServlet(value="/Hello")
public class AdminServlet extends HttpServlet
{
    private static final long serialVersionUID = -1139419481702036147L;

    @Override
    protected void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws ServletException, IOException {
        super.doGet(req, resp);

        PrintWriter writer = resp.getWriter();
        writer.write("HelloWorld");
        writer.close();
    }
}

URL を呼び出すと"http://localhost:8080/{webappname}/Hello"、ウィンドウが「ステータス 404 - リソースが利用できません」になりました。何か間違っていることでも?

ほとんどのサーブレット 3.0 の例に似ています :(

4

4 に答える 4

1

以下にいくつかの原因を示します。

  • サーブレット コンテナがサーブレット 3.0 をサポートしていることを確認してください。それらのほとんどは、
  • web.xml のバージョンが 3.0 であることを確認してください。web.xml バージョン < 3.0 では、注釈が処理されない場合があります。
  • metadata-complete 属性が false であることを確認してください。true の場合、注釈が処理されない可能性があります。
于 2013-03-29T09:14:18.020 に答える
0

問題は、サーブレットを正しい URL パターンにマッピングしていないことです。サーブレット名は URl パターンにマップする必要があります。しかし、あなたのコードではそれは行われていません。

注釈を使用して正しく行うには、以下を参照してください。

@WebServlet( name="AdminServlet", displayName="Admin Servlet", urlPatterns ={"/Hello","*.do"})
public class AdminServlet
于 2013-03-29T09:23:16.207 に答える
0

を作成{webappname}.warし、ディレクトリに配置してwebapps、サーバーを再起動します。

于 2013-03-29T09:14:25.623 に答える
0

問題が見つかりました:「super().doGet();」を削除する必要がありました

于 2013-03-29T10:25:10.870 に答える