私は 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>
良いことは、サーバーがコードを見つけていることですが、コードの検索とレンダリングの間のどこかで失敗します。
この問題をかなり徹底的に調査しましたが、問題の原因を示していると思われるものは何も見つかりませんでした。私が知っていることは次のとおりです。
- HttpServlet クラスをよく理解する必要があります。
- GWT が doPost と doGet の実装を処理する必要があります。
問題が何であるかについて何か提案があれば、私はすべて耳にします。または、エラーの意味の別の解釈は、私やこの問題を抱えている他の人にとって役立つでしょう.
編集:
Colin Alworth のおかげで、問題の一部を解決できました。問題は、サーブレットへのアクセスについてどのように考えていたかでした。HTML ページを介してアプリケーションにアクセスするのは確かに正しい方法でした。AsyncCallback メソッドを開始するメソッドを呼び出していなかったため (どういうわけかそれを見逃していました)、HTML ページとサーブレットが切断されているように見えました。