2017-01-02 69 views
0

我的工作,我想從我的web服務返回的值列表一個小例子:REST風格的web服務返回的值列表

@GET 
@Path("/string") 
@Produces({"application/xml", "application/json"}) 
public List<String> test2() 
{ 
    List<String> list = new ArrayList<String>(); 
    list.add("USA"); 
    list.add("EGYPT"); 
    return list; 
} 

我能夠通過成功地調用這個服務來獲得響應。

List list1 = client.target("http://localhost:8080/services/customers/string") 
        .request() 
        .accept(MediaType.APPLICATION_JSON) 
        .get(List.class); 

它給我的數據爲[USA, EGYPT]

但似乎我們需要使用GenericEntity按照這個帖子 - Jersey: Return a list of strings

或作爲包裝類 - How do return Java List<String> Json using Jax-RS

當我們需要使用這2個選項?是否需要使用GenericEntity或Wrapper類?

我正在使用JAX-RS2.0和Jersey實現。

+0

據我所知它不是必需的,但是將其封裝在'ResponseEntity'中例如允許您添加其他參數,例如html狀態。 –

+0

下面的鏈接可以幫助你弄清楚[Java類java.util.ArrayList ...和MIME媒體類型text/xml的消息正文編寫器未找到](https://stackoverflow.com/a/41429076/8228918) –

回答

0

根據a specific algorithm,球衣實體供應商對您的回覆進行系列化。您的應用程序上下文中應該有一個默認提供程序,用於支持您的List實例的序列化。因此你不需要進一步包裝。