2012-03-04 98 views
3

如何將球衣資源與非球衣資源配合使用guice?Jersey + Guice不能將非球衣資源與球衣資源混合

我想要「/」由一個普通的servlet處理。但我希望「/用戶」由球衣處理。

說我有@Path(「/ users」)的球衣資源。使用下面的綁定將無法正常工作,它會嘗試使用的球衣,當然這不是一個球衣資源映射「/」的要求,我得到404

protected void configureServlets() { 
    serve("/").with(LoginServlet.class); 
    serve("/*").with(GuiceContainer.class, params); 
} 

的我能找到球衣/吉斯的例子所有做一些像serve("/rest/*".with(GuiceContainer.class, params); 哪些工作適合我(「/ rest/users」),但我想要好的URI,沒有像'rest'或'ws'這樣的任意前綴。

回答

5

您與「/」和「/ *」有模糊的匹配。

要處理這個問題,您可以使用允許正則表達式而不是簡單模式的serve方法的版本。

例如,這樣的事情可能工作:

serve("/").with(LoginServlet.class); 
serveRegex("/.+").with(GuiceContainer.class, params); 

的GuiceContainer映射現在需要斜線後至少一個字符。