2014-04-30 66 views
0

我有一個下面的球衣類。Jersey @Path映射查詢

@Path("/static1/static2") 
public class DoStuff { 

@POST 
@Path("/static3") 
@Consumes(MediaType.APPLICATION_XML) 
@Produces("application/xml") 
public Response validation(String inputXML){ 

所以我的網址是localhost/static1/static2/static3,我得到一個200

我的目標是有一個URL,它是

localhost/static1/{variable}/static2/static3 

我試圖改變我的課以下列方式

@Path("/static1/{variable}/static2") 
    public class DoStuff { 

    @POST 
    @Path("/static3") 
    @Consumes(MediaType.APPLICATION_XML) 
    @Produces("application/xml") 
    public Response validation(String inputXML){ 

但我不斷收到404,我做錯了什麼?

+0

我加入了路徑PARAM解決{}變量的問題,但我解決不了的問題格式 –

回答

1

該問題似乎與最後一段路徑static3.{format}有關。請嘗試以下操作:

@Path("/static1/{variable}/static2") 
    public class DoStuff { 

    @POST 
    @Path("/{segment3:static3.*}") 
    @Consumes(MediaType.APPLICATION_XML) 
    @Produces("application/xml") 
    public Response validation(@PathParam("variable") String variable, 
           @PathParam("segment3") String segment3, 
           String inputXML) { 
     ............... 
    } 
+0

@Anrei,是你的答案沒有解決的問題。如果你也可以解釋爲什麼這能解決問題,那將是非常棒的。 –

+0

路徑段默認包含除'/'之外的所有字符。當你編寫'static3/{segment3} .suffix /'時,對於Jersey來說並不清楚(可能是一個bug,或者根本不是必須根據JAX-RS規範實現它),segment3 +後綴應該是一個段。 –