是否可以编写XmlAdapter <sometype,sometype =“”>?</sometype,>

时间:2013-12-13 22:26:06

标签: java jaxb xmladapter

即,在Web服务器中进行序列化时,我想将org.jbpm.graph.def.ProcessDefinition类的所有实例的processDefinition字段设置为null,因此每当从CXF Web服务返回值时,我都会避免出现此异常

com.sun.istack.SAXException2 : A cycle is detected in the object graph. This will cause infinitely deep XML: ProcessDefinition(DailyProcess) -> ProcessDefinition(DailyProcess)

询问的原因是我已经写了下面的课程

public class XmlJbpmProcessDefinitionAdapter extends XmlAdapter<ProcessDefinition, ProcessDefinition> {

    @Override
    public ProcessDefinition unmarshal(ProcessDefinition v) throws Exception {
        return v;
    }

    @Override
    public ProcessDefinition marshal(ProcessDefinition v) throws Exception {
        v.setProcessDefinition(null);
        return v;
    }
}

在package-info.java文件中将其定义为

@XmlJavaTypeAdapter(value=XmlJbpmProcessDefinitionAdapter.class, type=org.jbpm.graph.def.ProcessDefinition.class)

但它的方法永远不会被调用。

1 个答案:

答案 0 :(得分:0)

工作正常。问题是我的序列化在序列化该字段之前失败了,这就是为什么我的转换器从未被调用过。

为了更清楚地说明这一点,在包级别定义的这个特定转换器将在我自己的包中的org.jbpm.graph.def.ProcessDefinition类的所有字段中调用,但不是对于org中的对象字段。 jbpm.graph.def包。这是对的吗?