2012-02-01 105 views
0

我在标准配置中在Tomcat 6.0.32使用泽西1.11以上吉斯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. 这真的是一个bug或“功能”?
  2. 有没有解决方法或解决方法?

有关信息,我见过一个吉斯错误,可相关的,它似乎已经在另外一个被合并,但我想知道,如果它的正确固定(link

回答

4

使用服务,而不是过滤。

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

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

+0

谢谢,它的作品(我不会认为你也可以*服务* *过滤器*)。 'server()'应该被读为'serve()'。 – 2012-03-05 08:22:35