0

スーパー開発モードを始めようとしています。私はスーパー開発モードを実行しており、「開発モードをオン」にしてモジュールを再コンパイルできるメインの HTML ページを提供する Web サーバーを持っています。現在、このページから RequestFactory および RPC サーブレットにアクセスしようとしています。通常の開発モードを開始し、サーブレットを localhost:8888/gwtRequest で使用できるようにしました。これで、次の 3 つのサーバーが実行されました。

http://localhost:9876/ - GWT Code Server
http://localhost:8080/ - Mongoose web server serving /war directory
http://localhost:8888/ - GWT Dev Mode running servlets

アプリが正しいサーブレット コンテナーを参照するようにするにはどうすればよいですか? そして、それらすべてのサーバーが必要ですか? を探しているため、現在 404 が返されhttp://localhost:8080/gwtRequestます。

以下は web.xml のスニペットです。

<servlet>
  <servlet-name>requestFactoryServlet</servlet-name>
  <servlet-class>com.example.server.util.ExampleRequestFactoryServlet</servlet-class>
</servlet>

<servlet-mapping>
  <servlet-name>requestFactoryServlet</servlet-name>
  <url-pattern>/gwtRequest</url-pattern>
</servlet-mapping>

それを過ぎて、これをあまり複雑にしない方法はありますか? ひょっとしたら、いくつかの新機能がこれらの頭痛の種を解決してくれるのでしょうか? 方法がわかったら、他の開発者に環境をセットアップしたいと思っています! そして、うまくいけば、本番環境へのプッシュがそれほど難しくならないようにします (つまり、構成/コードの変更を最小限に抑えることができれば幸いです)。

ありがとうございました!

4

1 に答える 1

1

必要なサーバーは 2 つだけです。

  • 静的ファイルとサーバー側コード (サーブレット) を提供するもの。これには、JavaScript にコンパイルされたバージョンのアプリが含まれます (ただし、頻繁に更新する必要はありません!)。これは、DevMode に組み込まれているサーバーにすることもできますが、スタンドアロンの Jetty や Tomcat など、または Maven の tomcat7-maven-plugin や jetty-maven-plugin、または Gradle の jetty プラグインのようなものにすることもできます。
  • SuperDevMode の CodeServer

GWT-RPC を使用する場合は、gwt.codeserver.portシステム プロパティを CodeServer のポートに設定してサーバーを起動する必要があることに注意してください (これらが同じマシン上にあると仮定します)。そうすれば、ブラウザー (JS にコンパイルしてサーバーにデプロイしたものよりも新しいクライアント側コードを実行する) がサーブレットと通信すると、サーブレットは CodeServer から GWT-RPC シリアライゼーション ポリシーをロードします。そうしないと、GWT-RPC がエラーで失敗する可能性がありIncompatibleRemoteServiceExceptionます。

https://stackoverflow.com/a/18333050/116472も参照してください。

于 2014-05-28T21:52:13.373 に答える