Tôi đang cố sắp xếp một đối tượng có một đối tượng là một trong các trường của nó.JAXB Marshalling Objects với trường java.lang.Object
@XmlRootElement
public class TaskInstance implements Serializable {
...
private Object dataObject;
...
}
Các DataObject thể là một trong nhiều khác nhau loại không rõ, nên quy định cụ thể từng nơi không chỉ là không thực tế nhưng không thể. Khi tôi cố gắng sắp xếp đối tượng, nó nói rằng lớp học không được biết đến trong ngữ cảnh.
MockProcessData mpd = new MockProcessData();
TaskInstance ti = new TaskInstance();
ti.setDataObject(mpd);
String ti_m = JAXBMarshall.marshall(ti);
"MockProcessData cũng như bất kỳ siêu lớp nào được biết đến trong ngữ cảnh này". là những gì tôi nhận được.
Có cách nào xung quanh lỗi này không?
bạn đang cố gắng gì để serialize MockProcessData tới? tức là đại diện mong muốn là gì? – mtpettyp
Là người dùng JAXB lần đầu tiên, tôi có cùng một vấn đề cố gắng sắp xếp một cây đối tượng được tạo từ đầu, tức là không được tạo từ một XSD đã biên dịch. Trong thực tế, tôi muốn làm điều đó theo cách khác, và tạo lược đồ từ các lớp khi tôi có mã hoạt động. Tôi đã cố gắng gói đối tượng của tôi trong một JAXBElement như mô tả, và tôi đã chính xác giống như "Foobar không được biết đến bối cảnh này" tin nhắn như trước, vì vậy tôi không xa hơn về phía trước. –
Hey Dasmotiu - Tôi đã kết thúc bao gồm chú thích @XMLSeeAlso và cung cấp tất cả các lớp mà nó có thể cố gắng điều chỉnh đối tượng. Ví dụ: @XmlSeeAlso ({ StringType.class, DecimalType.class, NumericType.class, BooleanType.class, StructType.class, ListType.class, DateType.class, SpatialType.class }) lớp trừu tượng công khai FieldType { – jcovert