Jersey,Guice使用非根请求路径

Jersey,Guice使用非根请求路径,jersey,guice,guice-3,Jersey,Guice,Guice 3,我在Tomcat 6.0.32上以标准配置使用Jersey 1.11胜过Guice 3.0: configureServlets() { filter("/ws/*").through(GuiceContainer.class); } 和一个简单的资源类: @Path("/resource") public class Resource { ... } 有鉴于此,我认为访问“/ws/resource”是可行的;但实际上没有找到任何资源。问题似乎在于没有正确计算请求路径。作为一种解决方

我在Tomcat 6.0.32上以标准配置使用Jersey 1.11胜过Guice 3.0:

configureServlets() {
    filter("/ws/*").through(GuiceContainer.class);
}
和一个简单的资源类:

@Path("/resource")
public class Resource { ... }
有鉴于此,我认为访问“/ws/resource”是可行的;但实际上没有找到任何资源。问题似乎在于没有正确计算请求路径。作为一种解决方法,我将参数
PROPERTY\u FILTER\u CONTEXT\u PATH
设置为
/ws
,使整个过程正常工作:

Map<String, String> jerseyConfig = new HashMap<String, String>();
jerseyConfig.put(ServletContainer.PROPERTY_FILTER_CONTEXT_PATH, "/ws");
filter("/ws/*").through(GuiceContainer.class, jerseyConfig);
Map jerseyConfig=new HashMap();
jerseyConfig.put(ServletContainer.PROPERTY_FILTER_CONTEXT_PATH,“/ws”);
过滤器(“/ws/*”).through(GuiceContainer.class,jerseyConfig);
因此,我的问题是:

  • 这真的是一个bug还是一个“特性”
  • 是否有其他解决方案或解决方法

  • 关于信息,我看到了一个可能相关的Guice bug,它似乎已被合并到另一个中,但我想知道它是否已正确修复()

    使用服务而不是过滤器

    configureServlets() {
        serve("/ws/*").with(GuiceContainer.class);
    }
    

    然后您将能够点击/ws/resource。

    使用服务而不是过滤器

    configureServlets() {
        serve("/ws/*").with(GuiceContainer.class);
    }
    
    然后您就可以点击/ws/resource了。

    谢谢,它可以工作(我没想到您还可以提供过滤器)
    server()
    应该被理解为
    service()
    。谢谢,它可以工作(我没想到你也可以提供过滤器)<代码>服务器()。