0

我在标准配置中在 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. 是否有其他解决方案或解决方法?

有关信息,我看到了一个可能相关的 Guice 错误,它似乎已合并到另一个错误中,但我想知道它是否已正确修复(链接

4

1 回答 1

4

使用服务而不是过滤器。

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

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

于 2012-03-04T15:39:16.003 回答