2011-08-23 132 views
1

我試圖嵌入路徑的一類,像這樣:新澤西嵌入式@Path

@Service("adminSvc") 
@Path("/admin") 
public class AdminSvc { 
    @GET 
    public String getStuff(){ 
     return "stuff"; 
    } 

    @GET 
    @Produces(MediaType.TEXT_HTML) 
    @Path("/stuff") 
    public String moreStuff(){ 
     return "even more stuff"; 
    } 

} 

的目標是有管理頁面返回,然後返回一個頁面/管理/東西 這個不幸的是,當我嘗試它時返回405,但根據:
Overriding @Path at Jersey

它應該工作正常。有任何想法嗎?

+0

現在它可以工作。我認爲這是環境...如果我想出如何重現它將編輯。 – Chris

回答

0

我已經將該代碼(不包括@Service)複製並粘貼到我的Jersey(1.7)項目之一中,並且按預期工作。

/管理回報「東西」

/管理/東西回報「甚至更多的東西」

+0

@服務是春天的神器,我很難相信它會導致它。它很好地知道,代碼雖然工作! – Chris

0

如果YOUT得到了405 Method Not Allowed這意味着你使用的Accept頭不匹配MediaType.TEXT_HTML這可能是唯一的text/html的快捷方式。所以檢查你的HTTP請求。

對於您的整個資源,@Produces(...)的值是多少?

+1

對於'406 Not Acceptable'響應,這是真實的,但是對於'405',它與請求方法(GET,POST,PUT ...)有關,而不是可接受的內容類型。 –

+0

不太確定你的意思。向整個班級添加了@Produces ...,沒有任何效果。我抓住了http反應,看看我能否從那裏找出答案。謝謝 – Chris