2015-10-15 30 views
0

我目前正在編寫一個具有多個基於Jersey的WebServices的應用程序。有一件看起來過於複雜的事情是我用來打電話給他們的路徑。澤西Web服務與平坦的路徑結構?

例如,用戶收到一個包裹給別人,並想讓別人知道這一點。這應該全部由一個基本端點ParcelEndpoint處理。

我初始化端點:

@ApplicationPath("parcel4u") 
public class RefApp extends Application { 
    public Set<Class<?>> getClasses() { 
     final Set<Class<?>> returnValue = new HashSet<Class<?>>(); 
     returnValue.add(ParcelEndpoint.class); 
     return returnValue; 
    } 
} 

所以一切都在/parcel4u/將是WebService的方法。

當我嘗試給RefApp的每個方法它是自己的@Path(但不是類本身),沒有找到。我必須給這個類提供@Path和每種方法。它看起來像這樣:

@Path("rest") 
public class ParcelEndpoint { 
    @GET 
    @Path("received") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String received(@PathParam("userid") String forUser){ 
     return "received!"; 
    } 

    @GET 
    @Path("found") 
    @Produces(MediaType.TEXT_PLAIN) 
    public String found(@PathParam("userid") String forUser){ 
     return "found!"; 
    } 
} 

所以我可以調用/parcel4u/REST /接收/parcel4u/REST /發現。有沒有辦法跳過「休息」部分?

回答

1

那麼你可以用@Path("/")註釋你的班級,然後用@Path("received")@Path("found")註釋你的方法。

+0

嗯,那很簡單... :-) –