1

私の GWT アプリにはこのような汚いコードがあり、私のサービス層のクラスのいくつかはHttpSessionオブジェクトに依存しています。たとえば、私の DAO の 1 つ (GWT-RPC エンドポイント) には、次のようなものがあります。

public class MyExampleDAO extends RemoteServiceServlet {
   public findItems() {
       // here I need to get the object session to retrieve the currently logged in user in order to query for all its items...
   }
}

問題は、現在 RequestFactory を使用するようにコードを移行していることです。私の DAO は GWT-RPC エンドポイントではなくなります。そのため、RemoteServiceServlet を拡張する必要はありません ...

クラスが RemoteServiceServlet を拡張していないことを知って、HttpSession オブジェクトへの依存関係を(おそらくGuiceを使用して) 取得/注入する方法を知っていますか?

4

1 に答える 1

1

getThreadLocalRequest().getSession()それをする必要があります。サービスからアクセスできるRequestFactoryServlet同様の(ただし静的な)メソッドがあります。getThreadLocalRequest()それ以外の場合は、Guiceにを注入させることができます。Provider<HttpSession>これらのプロジェクトhttps://github.com/mgenov/injecting-request-factoryおよびhttps://github.com/etiennep/injected-requestfactoryを使用して、サンプルコードを確認してください。 RequestFactoryを使用してガイドします。

于 2011-06-03T11:50:00.710 に答える