2011-07-26 41 views
1

我有兩個資源類問題界定新澤西JAX RS重疊@Path值

Pc.java - @Path("/pc") 
Tag.java - @Path("/{entity:(pc|networks)?}/{id}/tags") 

所以第二個資源句柄「/ PC」或「/網絡」網址的結尾「/標籤」的一個分支。

但問題是我的方法在Tag.java沒有被調用。我認爲這是因爲Pc.java被配置爲處理/ pc,所以所有調用都被重定向到該資源並且Tag.java不會被調用,所以我得到了一個404錯誤。

  1. 我可以通過更改/標記來作爲父路徑並使其具有(pc /網絡),但我不想這樣做,因爲它不適合其他URL的樣式項目。
  2. 我可以有兩套方法 - Pc.java在一組負責處理「/ PC」和Network.java下,另一組負責處理「/網絡」,但是這似乎是複製代碼...

任何想法?

回答

3

也許標籤的至少一部分應該是Pc的sub-resource

+0

你的意思是在Pc.java中有一些'/pc.../tags'子資源,其餘部分在Tag.java中...對不起,沒有得到你。 – hese

+0

錯過了您的答案中的鏈接。看起來像我會得到我的答案,如果我完全閱讀。謝謝! – hese

+0

是的,子資源定位器是要走的路!所以我定義了一個單獨的資源來處理'/ tags' - Tag.java ...並且在每個Pc.java和Network.java中,我只有一個'/ tags'子資源,它會返回一個Tag的實例.. 。感謝這個鏈接!我已經接受你的答案。 – hese