2

私は Google の開発者サイトで GWT のチュートリアルに取り組んでおり、ここで GWT RPC に関するセクションにたどり着きました。問題の要点は、チュートリアルの指示に注意深く従い、Eclipse Juno で開発モードでコードを実行したときに問題が発生したことです。エラーは、「エラー 405 HTTP メソッド GET はこの URL ではサポートされていません」です。

私がいる環境は次のとおりです。

  • 日食ジュノ 4.2
  • Ubuntu 12.04 LTS (最近重要な更新はありません。)
  • デフォルトの GWT SDK (GWT - 2.4.0) を使用します。
  • デフォルトの GAE SDK (App Engine - 1.7.2) を使用します。
  • Chrome バージョン 21.0.1180.89

サンプルのコードを参照して、問題の一部として web.xml ファイルとそこにある servlet-mappings に注目し始めました。私が web.xml コードに持っているものは次のとおりです。

   <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">

    <web-app>

       <!-- Default page to serve -->
      <welcome-file-list>
        <welcome-file>StockWatcher.html</welcome-file>
      </welcome-file-list>

      <!-- Servlets -->
      <servlet>
        <servlet-name>stockPriceServiceImpl</servlet-name>
        <servlet-class>com.google.gwt.sample.stockwatcher.server.StockPriceServiceImpl</servlet-class>
      </servlet>

      <servlet-mapping>
        <servlet-name>stockPriceServiceImpl</servlet-name>
        <url-pattern>/stockwatcher/stockPrices</url-pattern>
      </servlet-mapping>

  </web-app>

良いことは、サーバーがコードを見つけていることですが、コードの検索とレンダリングの間のどこかで失敗します。

この問題をかなり徹底的に調査しましたが、問題の原因を示していると思われるものは何も見つかりませんでした。私が知っていることは次のとおりです。

  1. HttpServlet クラスをよく理解する必要があります。
  2. GWT が doPost と doGet の実装を処理する必要があります。

問題が何であるかについて何か提案があれば、私はすべて耳にします。または、エラーの意味の別の解釈は、私やこの問題を抱えている他の人にとって役立つでしょう.

編集:

Colin Alworth のおかげで、問題の一部を解決できました。問題は、サーブレットへのアクセスについてどのように考えていたかでした。HTML ページを介してアプリケーションにアクセスするのは確かに正しい方法でした。AsyncCallback メソッドを開始するメソッドを呼び出していなかったため (どういうわけかそれを見逃していました)、HTML ページとサーブレットが切断されているように見えました。

4

1 に答える 1

4

StockPriceServletを拡張する必要があります。RemoteServiceServletこれは RPC 呼び出し専用であるため、 をサポートしていませんGET。ブラウザーをその URL に誘導しないでください。代わりに、アプリで提供されている html ファイルを使用してください。実際の URL は Dev Mode コンソールに表示されます。https://developers.google.com/web-toolkit/doc/latest/tutorial/gettingstartedチュートリアルでは、これは https://developers.google.com/web-toolkit/doc/latest/ のステップ 2 で説明されています。チュートリアル/作成- URL は、http://localhost:8888/StockWatcher.htmlまたは、開発モードを使用している場合はより可能性が高くなりますhttp://localhost:8888/StockWatcher.html?gwt.codesvr=localhost:9997。web.xml から、html ファイル自体をリストする必要さえありません。

   <!-- Default page to serve -->
  <welcome-file-list>
    <welcome-file>StockWatcher.html</welcome-file>
  </welcome-file-list>

http://localhost:8888/?gwt.codesvr=localhost:9997十分なはずです。

サーブレットは常に html を提供することを意図しているわけではありません。これはその 1 つです。このタイプのサーブレットの明確な目的は、GWT クライアントがサーバー上の Java メソッドと対話するための方法であることです。前方へ。このサーブレットの使用方法 (クライアント コード内のみ) の詳細については、https://developers.google.com/web-toolkit/doc/latest/tutorial/RPCをご覧ください。

于 2012-10-11T04:09:45.513 に答える