0
カスタム@XmlRootElementレスポンスオブジェクトを返してうまく機能するJersey 1.19 REST Webサービスがあります。com.owlike.genson.JsonBindingException:クラスjavax.ws.rs.core.Responseを入力して非直列化できませんでした
javax.ws.rs.WebApplicationException: com.owlike.genson.JsonBindingException: Could not deserialize to type class javax.ws.rs.core.Response
at com.owlike.genson.ext.jaxrs.GensonJsonConverter.readFrom(GensonJsonConverter.java:127)
at com.sun.jersey.api.client.ClientResponse.getEntity(ClientResponse.java:634)
レスポンスタイプ:MyResponseを返し
@XmlRootElement
public class MyResponse {
public String message;
}
エンドポイント:
@GET
@Path("/info")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public MyResponse getInfo(){
return new MyResponse();
}
私は後でjavax.ws.rs.core.Responseを主張すべきテストを実行する場合しかし、私は例外を取得します
関連ライブラリを含むpom.xmlのフラグメント:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.2.4</version>
<scope>compile</scope>
</dependency>
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>1.4</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.1.3</version>
</dependency>
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-json</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>com.sun.jersey.jersey-test-framework</groupId>
<artifactId>jersey-test-framework-grizzly2</artifactId>
<version>1.19</version>
<scope>test</scope>
</dependency>
この問題を解決するにはどうすればよいですか?
:com.sun.jersey.api.client.ClientResponseへの対応から予期される型を変更しました。使用するコードを投稿する必要があります。 – eugen
が更新されました。私のカスタム固有の型MyResponseを逆シリアル化するとうまく動作しますが、javax.ws.rs.core.Responseでラップする必要があると思います。私がJersey 2でテストしたとき、それは問題ではありませんでした。 – Justas