最新のJAX-RSはjava.util.ListをXMLRootElementとして返すメソッドを処理できるようですが、通常のJAXBは処理できません。CXFとJerseyが行っていることを模倣したいと思います。
言い換えれば、CXFやJerseyと同じように、リストをマーシャリングしたいと思います。通常、JAXBを使用してリストをマーシャリングしようとすると、ルート要素の例外が発生します。ラッピングオブジェクトを作成せずにこれを回避するにはどうすればよいですか?
編集:多くの回答に感謝しますが、私は@XmlElementWrapperに精通していますが、JAX-RSが実行していることをシミュレートすることすらできません。
JAX-RSはこれを行います:
@XmlRootElement(name="dog")
public class Dog {
private String name;
public String getName() { return this.name; }
//Setter also
}
犬のリストをシリアル化すると、次のようになります。
serialize(List<Dog> dogs);
XMLは(JAX-RSが行うこと)である必要があります:
<dogs>
<dog><name>Rascal</name></dog>
</dogs>
したがって、すべての単一ドメインオブジェクトに対してラッパーオブジェクトを作成する必要がないことがわかります。