2

Jersey v1.13 では、次のように注釈が付けられた 2 つのクラスがあります。

@XmlRootElement(name="request_pojo")
public class RequestPojo {
    public String name;

    @XmlElementWrapper(name = "nested_pojos")
    @XmlElement(name = "nested_pojo")
    public List<NestedPojo> nestedPojo;
}

@XmlRootElement(name="nested_pojo")
public class NestedPojo {
    public String name;
}

ジャージー クライアントを使用して s のRequestPojoコレクションを持つをシリアル化しようとするとNestedPojo、それらがログにマーシャリングされていません。

INFO: 1 * Client out-bound request
23:30:45 web.1  | 1 > POST https://localhost:443/test/
23:30:45 web.1  | 1 > Content-Type: application/xml
23:30:45 web.1  | <?xml version="1.0" encoding="UTF-8" standalone="yes"?>
                  <request_pojo>
                    <name>blah</name>
                  </request_pojo>

jersey クライアントによって次のようなものが送信されるようにするには、何を修正する必要がありますか?

<request_pojo>
  <name>blah</name>
  <nested_pojos>
    <nested_pojo>
      <name>nested blah</name>
    </nested_pojo>
  </nested_pojos>
</request_pojo>
4

1 に答える 1

1

私に関しては、あなたのコードはうまく機能します。
考えられる問題:
1)Listイテレータの実装で実装されていません。
2)nestedPojo空またはnull. プロジェクトをデバッグして確認する

于 2013-06-20T07:31:49.133 に答える