2

GWTをOSGiEquinoxコンテナーに統合する際に問題が発生しました。エントリポイントのWebページが実行されます。最初のページが表示されます。しかし、ボタンをクリックしてサーバー呼び出しを実現すると、実行されません。私はFirefoxを使用していますが、Firebugがあります。次に、ネットワークフィールドが表示されると、次のメッセージが表示されます。

Content-Type    text/html; charset=iso-8859-1
Cache-Control   must-revalidate,no-cache,no-store
Content-Length  1431
Server  Jetty(6.1.x)

Host    localhost
User-Agent  Mozilla/5.0 (Windows NT 5.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1
Accept  text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language es-es,es;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding gzip, deflate
Accept-Charset  ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive  115
Connection  keep-alive
Content-Type    text/x-gwt-rpc; charset=utf-8
X-GWT-Permutation   CCF6A1341D371C4123AE827BC29EA602
X-GWT-Module-Base   http://localhost/zbapp/zb_app/
Referer http://localhost/zbapp/ZB_app.html
Content-Length  174
Pragma  no-cache
Cache-Control   no-cache

投稿方法:

7|0|6|http://localhost/zbapp/zb_app/|A31E1254E17F9AD731856D6BE34124A2|main.java.com.gwt.app.client.GreetingService|greetServer|java.lang.String/2004016611||1|2|3|4|2|5|5|6|6|

そして応答:

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
<title>Error 404 ProxyServlet: /zbapp/zb_app/greet</title>
</head>
<body><h2>HTTP ERROR 404</h2>
<p>Problem accessing /zbapp/zb_app/greet. Reason:
<pre>    ProxyServlet: /zbapp/zb_app/greet</pre></p><hr /><i><small>Powered by     Jetty://</small></i><br/>                                                                                         
</body>
</html>


Problem accessing /zbapp/zb_app/greet. Reason:
ProxyServlet: /zbapp/zb_app/greet

呼び出しが行われたように見えますが、アクセスできません。問題はわかりません。誰かが私を助けてもらえますか?他のサービスと統合するには、それを解決する必要があります。

どうもありがとう!

よろしく!

4

2 に答える 2

2

Springの操作方法はわかりませんが、OSGiバンドルをGWTと統合しました。これが、そのために役立つことを願っています。

これを見てください:http://bryanhunt.wordpress.com/2010/05/14/osgi-as-a-web-application-server/。チュートリアルでは、サーブレットをOSGiバンドルに統合する方法を段階的に示しています。次に、このhttp://wiki.eclipse.org/Google_Web_Toolkit_and_Equinoxを見てください。このリンクは、GWT jarをラップする方法に加えて、GWTをOSGiバンドルに統合するために知っておく必要のあるすべてのことをほぼ説明しています。

Eclipseで、ファイル>新しいプロジェクト>プラグイン開発>既存のjarアーカイブからのプラグインに移動します。次に、add externalを選択し、GWT-user jar(および必要に応じてGWT-devを選択しますが、これはサーバー側のみのものには必要ありません)を選択します。あなたは瓶を抽出するかどうかを選ぶことができます、それは問題ではありません。マニフェストファイルは自動的に生成され、すべてのGWT機能をエクスポートします。次に、サーブレットバンドルのマニフェストファイルでこのバンドルを要求するだけです。

(最後の)チュートリアルの2番目のマイナーな問題は、javax.servletをエクスポートするGWTバンドルのマニフェスト(jarから作成したもの)の行を削除する必要があると述べていることです。*これは正しいですが、これにRequire-Bundle: javax.servletは、GWTバンドルのマニフェストにも行を追加する必要があります。そうしないと、クラスローダーの例外が発生します。

これがお役に立てば幸いです。

于 2011-05-26T11:28:01.697 に答える
0

さて、私は最初の問題を解決しました、私は達成しました!!! 私はファイルplugin.xmlに拡張子フラグを次のように追加しました:

<extension point="org.eclipse.equinox.http.registry.servlets">
    <servlet alias="/zbapp/zb_app/greet" class="main.java.com.gwt.app.server.GreetingServiceImpl" />
</extension> 

ただし、エラーが500に変わります。原因は次のとおりです。

java.lang.NoClassDefFoundError: org/springframework/asm/ClassVisitor

しかし、org.springframework.asmバンドルをデプロイし、Import-Packagesタグorg.springframework.asmパッケージに追加しました。

春のバージョンは3.1.0ですが、なぜそれが起こるのですか?エラーがSpringのバージョンによるものである場合にのみ考えます。

ありがとう!

于 2011-05-25T11:19:42.353 に答える