Jersey,Guice使用非根请求路径

时间:2012-02-01 14:12:59

标签: 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”会起作用;但实际上没有找到资源。问题似乎在于请求路径未正确计算。作为一种解决方法,我将参数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);

因此我的问题是:

  1. 这真的是一个错误还是一个“功能”?
  2. 是否有其他解决方案或解决方法?
  3. 有关信息,我看过一个可能相关的Guice错误,它似乎已经合并到另一个但是我想知道它是否已正确修复(link

1 个答案:

答案 0 :(得分:4)

使用服务而不是过滤。

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

然后你就可以点击/ ws / resource。