1

複合オブジェクトのデシリアライズについて質問があります。私のオブジェクトは次のようになります。

public class Outside
{
   private String str1;
   private Inside s;
}

public class Inside
{
   private String str2;
   public Inside(String str2) 
   {
    this.field1 = str2;
   }
}

Jsonへのレスポンスをデシリアライズしたいとき

Outside o = wr.accept(MediaType.APPLICATION_JSON_TYPE).get(Outside .class);

次の例外が発生します ....ClientHandlerException: A message body reader for Java class Outside, and Java type class Outside, and MIME media type application/json was not found

何が間違っているのかわかりません。

4

1 に答える 1

2

java.lang.NoSuchMethodException: ....Inside.()

これは、あなたが持っていないフォームのコンストラクターを参照してInside()います-あなたは持っているだけInside(String)です。シリアル化には引数のないコンストラクターが必要なため、リフレクションを使用してオブジェクトをインスタンス化し、フィールドに入力することが簡単にできます。

したがって、引数なしのコンストラクターを追加する必要があります。

于 2012-09-05T21:27:02.713 に答える