1

Eclipse June 4.2 で新しいプロジェクトを作成しました Google App Engine SDK 1.7.4 を使用します

Eclipseはサーブレットを作成します

public class ClockServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}

および単純な web.xml

    <servlet>
    <servlet-name>Clock</servlet-name>
    <servlet-class>clock.ClockServlet</servlet-class>
</servlet>
<servlet-mapping>
    <servlet-name>Clock</servlet-name>
    <url-pattern>/clock</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>

展開すると、一般的な HTML エラー ページが表示されます: Error: Server Error および取得したログから:

    EXCEPTION java.lang.ClassNotFoundException: clock.ClockServlet
at com.google.appengine.runtime.Request.process-0925dcee3db2e16a(Request.java)

しかし、サーブレットは存在し、web.xml は正しいです どこが間違っていますか?

tnx

4

2 に答える 2

3

Servlet と Web.xml は正しかったようですが、Google App Engine を使用するために必要なタグが抜けていました。ドキュメント内で下線が引かず、大文字で書かれていないのはなぜだろうか。

タグは<load-on-startup>1</load-on-startup>

Java アプリケーション構成を参照してください。

各カスタム サーブレットは、起動時にロードして、GA エンジンがクラスを開始し、リクエストを受け入れるようにする必要があります。アプリケーションを GAE にデプロイするために使用する最終的な web.xml は次のとおりです。

    <servlet>
    <servlet-name>Clock</servlet-name>
    <servlet-class>clock.ClockServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <servlet-name>Clock</servlet-name>
    <url-pattern>/clock</url-pattern>
</servlet-mapping>
<welcome-file-list>
    <welcome-file>index.html</welcome-file>
</welcome-file-list>
于 2012-12-28T09:33:16.290 に答える