標準構成で Tomcat 6.0.32 の Guice 3.0 で Jersey 1.11 を使用しています。
configureServlets() {
filter("/ws/*").through(GuiceContainer.class);
}
そして、単純なリソース クラス:
@Path("/resource")
public class Resource { ... }
それを考えると、「/ws/resource」へのアクセスはうまくいくと思います。しかし、実際にはリソースが見つかりません。問題は、リクエスト パスが正しく計算されていないことにあるようです。回避策として、パラメーターPROPERTY_FILTER_CONTEXT_PATH
を/ws
に設定しました。これにより、すべてが機能します。
Map<String, String> jerseyConfig = new HashMap<String, String>();
jerseyConfig.put(ServletContainer.PROPERTY_FILTER_CONTEXT_PATH, "/ws");
filter("/ws/*").through(GuiceContainer.class, jerseyConfig);
したがって、私の質問は次のとおりです。
- これは本当にバグですか、それとも「機能」ですか?
- これに対する別の解決策または回避策はありますか?
参考までに、関連する可能性のある Guice のバグを 1 つ見たことがあります。別のバグにマージされているようですが、適切に修正されているかどうか疑問に思っています (リンク)