0

私の GWT と AppEngine プロジェクトではServlet、次を使用してJSP を転送しています。

req.getRequestDispatcher("/index.jsp").forward(req, resp);

JSP には、GWT でコンパイルされた Javascript リファレンスが含まれています。

問題は、ページが正常にロードされても、GWT Javascript が実行されないことです。これは、新しくロードされたファイル?gwt.codesvr=127.0.0.1:9997に、GWT プラグインで通常存在する部分が含まれていないためだと思います。

これを機能させる方法はありますか??

編集:これまでの回答に基づいて、Webモードではまったく問題なく動作することに言及する必要があると思います. また、ベース URL は私のサーブレットに直接マップされるため、提案された URL の代わりにWeb.xmlサーブレットにアクセスします。http://127.0.0.1:8888/http://127.0.0.1:8888/index.html?gwt.codesvr=127.0.0.1:9997

4

3 に答える 3

2

?gwt.codesvr=クライアント側でのみ*.nocache.jsファイルによって使用され、hosted.htmlいくつかの の代わりにのロードをトリガーする*.cache.htmlため、サーバー側で実行できることとは関係なく、DevMode をトリガーするために URL に存在する必要があります。

ホスト ページが にある場合はhttp://127.0.0.1:8888/、 を使用しますhttp://127.0.0.1:8888/?gwt.codesvr=127.0.0.1:9997

于 2012-07-15T09:02:18.663 に答える
0

RequestDispatcher を使用して転送しても、ブラウザの URL は変更されません。ブラウザーの URL にパラメーターが表示されている場合gwt.codesvr、GWT プラグインはそれを見つけることができるはずです。したがって、問題は別の場所にある可能性があります。確かに、転送呼び出しに URL パラメータを一時的に追加できます。たとえば、次のようになります。

req.getRequestDispatcher("/index.jsp?gwt.codesvr=127.0.0.1:9997").forward(req, resp);

それでもうまくいかない場合は、 へのパスが*.nocache.jsホスト ページに対して正しく解決されていることを確認してください。Webモードで動作しますか?

于 2012-07-15T01:41:19.813 に答える
0

サーブレットで、リクエストがローカルかどうかを確認してみませんか。

String url = request.getRequestURL().toString();

URLに含まれているhttp://127.0.0.1:8888か、実行している場所があれば、"/index.jsp?gwt.codesvr=127.0.0.1:9997". そうでない場合は、そのままにしておくことができます。

その後、コードを変更することなく、そこでコードをデプロイしてテストすることもできます!

于 2012-07-15T01:54:45.947 に答える