我正在尝试编组一个对象作为其字段之一的对象.
@XmlRootElement
public class TaskInstance implements Serializable {
...
private Object dataObject;
...
}
Run Code Online (Sandbox Code Playgroud)
dataObject可以是许多不同类型的未知类型之一,因此指定每个地方不仅不切实际而且不可能.当我尝试编组对象时,它表示该类不为上下文所知.
MockProcessData mpd = new MockProcessData();
TaskInstance ti = new TaskInstance();
ti.setDataObject(mpd);
String ti_m = JAXBMarshall.marshall(ti);
Run Code Online (Sandbox Code Playgroud)
"MockProcessData及其任何超类都不为此所知." 就是我得到的.
有没有办法解决这个错误?
JAXB无法封送任何旧对象,因为它不知道如何.例如,它不知道要使用的元素名称.
如果需要处理这种通配符,唯一的解决方案是将对象包装在一个JAXBElement对象中,该对象包含足以让JAXB编组为XML的信息.
尝试类似的东西:
QName elementName = new QName(...); // supply element name here
JAXBElement jaxbElement = new JAXBElement(elementName, mpd.getClass(), mpd);
ti.setDataObject(jaxbElement);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11833 次 |
| 最近记录: |