1

REST 呼び出しを行い、MyClass オブジェクトのリストを含む json を取得したいと考えています。実際、私はこの例外を受け取ります:

{"エラー":"Java クラス java.util.List、Java タイプ インターフェイス java.util.List、および MIME メディア タイプ application/json のメッセージ ボディ リーダー。charset=UTF-8 が見つかりませんでした","type" :"com.sun.jersey.api.client.ClientHandlerException","stackTrace":"com.sun.jersey.api.client.ClientHandlerException: 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\tat ..[その他のスタック トレース]..}

コードは次のとおりです。

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
{ ... }

私は何か見落としてますか?

4

1 に答える 1

7

はい、Java の型消去により、Jersey はリストの型を認識できません。getList() メソッドの最後の行を次のように変更する必要があります。

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

その後、動作するはずです。

于 2012-06-20T10:13:04.777 に答える