Parece que la última JAX-RS puede manejar métodos que devuelven java.util.List como XMLRootElement pero no JAXB normal. Me gustaría imitar lo que CXF y Jersey están haciendo.Cómo clasifico java.util.List con JAXB como JAX-RS (CXF y Jersey) do
En otras palabras, me gustaría Marcar una lista y al igual que CXF y Jersey. Normalmente, si intenta reunir una lista con JAXB obtiene la excepción de Elemento raíz. ¿Cómo puedo evitar esto sin tener que hacer un objeto de embalaje?
EDIT: Gracias por las muchas respuestas, pero estoy muy familiarizado con @XmlElementWrapper pero eso ni siquiera se acerca a simular lo que JAX-RS está haciendo.
JAX-RS hace esto:
@XmlRootElement(name="dog")
public class Dog {
private String name;
public String getName() { return this.name; }
//Setter also
}
Ahora bien, si me serializar una lista de perros:
serialize(List<Dog> dogs);
XML debe ser (lo que JAX-RS hace):
<dogs>
<dog><name>Rascal</name></dog>
</dogs>
Para que pueda ver, no quiero tener que crear un objeto contenedor para cada objeto de dominio.
I Creo que esta podría ser la respuesta https://jaxb.dev.java.net/guide/Different_ways_of_ma rshalling.html # Marshalling_a_non_element –
Parece que podría utilizar el código en: org.apache.cxf.jaxrs.provider.AbstractJAXBProvider –
que quería decir JAXBElementProvider –