Estoy intentando ordenar un objeto que tiene un objeto como uno de sus campos.JAXB Marshalling Objects con el campo java.lang.Object
@XmlRootElement
public class TaskInstance implements Serializable {
...
private Object dataObject;
...
}
El dataObject puede ser uno de los muchos diferentes tipos desconocidos, por lo que la especificación de cada uno en algún lugar no sólo es poco práctico, sino imposible. Cuando trato de ordenar el objeto, dice que el contexto no conoce la clase.
MockProcessData mpd = new MockProcessData();
TaskInstance ti = new TaskInstance();
ti.setDataObject(mpd);
String ti_m = JAXBMarshall.marshall(ti);
"MockProcessData ni ninguno de sus super clase se conoce a este contexto." es lo que obtengo
¿Hay alguna forma de evitar este error?
¿Qué estás tratando de serializar MockProcessData a? es decir, ¿cuál es la representación deseada? – mtpettyp
Como primer usuario de JAXB, tengo exactamente el mismo problema al tratar de ordenar un árbol de objetos creado desde cero, es decir, no creado a partir de un XSD compilado. De hecho, quiero hacerlo al revés y generar el esquema de las clases una vez que tenga el código funcionando. Traté de envolver mi objeto en un JAXBElement como se describe, y obtuve exactamente el mismo mensaje "Foobar no se conoce en este contexto" que antes, así que no estoy más adelante. –
Hola Dasmotiu - Terminé incluyendo la anotación @XMLSeeAlso y proporcionando todas las clases que podría tratar de destrabar el objeto. Por ejemplo: @XmlSeeAlso ({ StringType.class, DecimalType.class, NumericType.class, BooleanType.class, StructType.class, ListType.class, DateType.class, SpatialType.class }) clase abstracta pública FieldType { – jcovert