2012-06-20 85 views
1

我打了一個REST調用,並且想要返回包含MyClass對象列表的json。 其實我得到這個異常:沒有閱讀器可用於接口使用UTF-8的列表和MIME媒體類型應用程序/ json

{ 「錯誤」:「消息正文閱讀器的Java類的java.util.List,和 Java類型接口java.util.List中,和MIME媒體類型 應用/ json; charset = UTF-8不是 found,「type」:「com.sun.jersey.api.client.ClientHandlerException」,「stackTrace」:「com.sun.jersey.api.client.ClientHandlerException: A Java類java.util.List的消息體讀取器,以及Java類型 接口java.util.List和MIME媒體類型application/json; 未找到charset = UTF-8 \ n \ tat com.sun.jersey .api.client.ClientResponse.getEntity(ClientResponse.java:550)\ n \ tat com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:506)\ n \ tat com.sun.jersey.api.client.WebResource.handle(WebResource.java:684)\ n \ tat com.sun.jersey.api.client.WebResource.access $ 200(WebResource.java:74)\ n \ tat com.sun.jersey.api.client.WebResource $ Builder.get(WebResource.java:507 )\ n \達 .. [更多堆棧跟蹤] ..}

代碼:

public List<'MyClass> getLIst() 
{ 

ClientConfig config = new DefaultClientConfig(); 
config.getClasses().add(MyObjectMapper.class); 
Client client = Client.create(config); 

WebResource resource = client.resource(HOST_PATH).path(PATH).type(MediaType.APPLICATION_JSON_TYPE).accept(MediaType.APPLICATION_JSON_TYPE); 

return resource.get(List.class); 
} 

@XmlRootElement 
public class MyClass 
{ ... } 

我錯過了什麼?

回答

7

是的,由於Java中的類型擦除,Jersey無法看到列表是什麼類型。你應該改變你的GetList()方法的最後一行如下:

return resource.get(new GenericType<List<MyClass>>() {}); 

那麼它應該工作。

+0

非常感謝你! – sunny

+0

最後它不起作用... – sunny

+0

我得到一個例外: – sunny

相關問題