2017-05-15 39 views
2

我有一個端點:如何允許在JAX-RS路徑PARAM斜線端點

@Path("/products") 

    @Produces({ MediaType.APPLICATION_JSON }) 
    public interface Products { 

     @PUT 
     @Path("/{productId}") 
     .... 
    } 

我對這個服務中實現一個JAX-RS客戶端和有它在,我的另一個服務進口從此呼籲。

所以我從我的第二個服務

public String updateProduct(String productId){ 
.. 
    return client.target(this.getBaseUrl()).path("products/").path(productId).request(MediaType.APPLICATION_JSON_TYPE).put(Entity.json(""), String.class); 
} 

調用客戶端如下如果我有斜線產品說「控制/註冊應用」,該服務似乎並沒有把它做好。我在對服務進行調用之前編碼了productId,然後在收到之後對其進行解碼。但那似乎不起作用,我找不到404。有任何想法嗎?在此先感謝

+0

可能重複[@PathVariable在URL中使用斜槓的SpringBoot](http://stackoverflow.com/questions/43470421/pathvariable-in-springboot-with-slashes-in-url) –

+1

@PJMeisch這不是一個一旦OP使用JAX-RS而不是Spring MVC用於REST API,就會出現上述問題的重複。 –

回答

3

使用@Path("{productId : .+}")應該工作。

+0

謝謝,這有幫助! –

+0

完成,但我的聲望不足以顯示它:) –