Java SOAP对象被其他2个引用并序列化为2个不同的
这是从wsdl生成的客户机。当我把它发送到我的服务器时,它会得到4个类型为A4的不同对象:Java SOAP对象被其他2个引用并序列化为2个不同的,java,web-services,soap,wsdl,jax-ws,Java,Web Services,Soap,Wsdl,Jax Ws,这是从wsdl生成的客户机。当我把它发送到我的服务器时,它会得到4个类型为A4的不同对象: public class Client { public static void main(String[] args){ A4 a41 = new A4(); A4 a42 = new A4(); A4 a43 = new A4(); a41.setName("a41"); a42.setName("a42");
public class Client {
public static void main(String[] args){
A4 a41 = new A4();
A4 a42 = new A4();
A4 a43 = new A4();
a41.setName("a41");
a42.setName("a42");
a43.setName("a43");
A2 a2 = new A2();
a2.getA4ListInA2().add(a41);
a2.getA4ListInA2().add(a42);
A3 a3 = new A3();
a3.getA4ListInA3().add(a42);
a3.getA4ListInA3().add(a43);
A1 a1 = new A1();
a1.setFirst(a2);
a1.setSec(a3);
try {
new Service05Service().getService05Port().count(a1);
} catch (Exception e) {
e.printStackTrace();
} `enter code here`
}
}
我认为这并不重要,但我正在IBMWebSphere8上使用JAX-WS。在我看来,它不依赖于JAXB实现的序列化程序。在封送A4对象之后,JAXB解析器无法区分这些元素,无论它们是否唯一,是否表示相同的对象。如下列文件所述: 当取消编组的数据被删除时,将有重复的对象 传输到应用程序对象
您可以修改xsd模式以指定A4元素ID和该特定元素的IDREF,这样JAXB解析器就可以按预期解组消息 谢谢你的邀请。。。顺便说一句,这对我来说有点奇怪,它就像未经处理的。