即,在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)
但它的方法永远不会被调用。
答案 0 :(得分:0)
工作正常。问题是我的序列化在序列化该字段之前失败了,这就是为什么我的转换器从未被调用过。
为了更清楚地说明这一点,在包级别定义的这个特定转换器将在我自己的包中的org.jbpm.graph.def.ProcessDefinition类的所有字段中调用,但不是对于org中的对象字段。 jbpm.graph.def包。这是对的吗?