hereに記載されているように、Guice を使用して GWT アプリを構成しました。この設定では、アプリは正常に動作します。
ただし、今やりたいことは、GWT RPC を使用してサービスを呼び出す GWTTestCase を取得することです。この目的のために、私はこれを行いました、
- <app>JUnit.gwt.rpc を更新して、サービス URL が GuiceRemoteServiceServlet にマップされるようにしました
- このコメントに従って Injector を初期化するために、GuiceRemoteServiceServlet に init() メソッドを追加しました
残念ながら、私はまだエラーが発生しています。
com.google.inject.ProvisionException: Guice provision errors:
Caused by: com.google.inject.OutOfScopeException: Cannot access scoped object. Either we are not currently inside an HTTP Servlet request, or you may have forgotten to apply com.google.inject.servlet.GuiceFilter as a servlet filter for this request.
at com.google.inject.servlet.GuiceFilter.getContext(GuiceFilter.java:132)
at com.google.inject.servlet.GuiceFilter.getRequest(GuiceFilter.java:118)
at com.google.inject.servlet.InternalServletModule$1.get(InternalServletModule.java:35)
.....
プロビジョニングしようとしているオブジェクトは ServletContext です。エラーの原因は、GuiceFilter が呼び出されていないため、ServletContext が ThreadLocal にバインドされていないことにあります。
これを乗り越える方法はありますか?