0

GWTとCDI(Seam / Weld)の統合に関する質問はあまり注目されなかったので、もう一度試してみます。サーバー側では、Weld / CDIを使用したいと思います(現在Guiceを使用しています)。Guiceには、GuiceServletContextListenerでアクティブ化されるモジュールで名前が付けられたRemoteServiceServletのサブクラスがあります。GWT RPCエンドポイントがWeldからインスタンスを取得するように、RemoteServiceServletを登録するためのクラスを作成した人はいますか?

4

1 に答える 1

0

CDI を (EE6 コンテナーの一部として) 使用する場合、GWT RemoteServiceServlets に @WebServlet でアノテーションを付けることができ、それらは CDI Bean になります。@Inject は、適切に構成されていれば、@PersistenceContext や @Resource などでも機能します (EE サーバーは構成を必要としません。他の Web コンテナーについては、Weld ドキュメントを参照してください。web.xml で構成されたリスナーが必要です)。 . 私はこのアーキテクチャを何度も使用しました。

他の質問で言及したこと (「どうやら CDI は、javax.servlet.Servlet から派生したクラスでは機能しないようです。」) は、もはや真実ではないはずです。コメンターも指摘しているように、1.1 で修正されています。

私が今見ている唯一の問題は、@WebServlet にインターセプターを追加しようとすると、GWT RemoteServiceServlet がいくつかの最終メソッド (getSerializationPolicy) を宣言するため、読み込みが失敗し、そのプロキシを作成できないことです。

于 2012-05-14T11:48:39.740 に答える