Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/355.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java SOAP对象被其他2个引用并序列化为2个不同的_Java_Web Services_Soap_Wsdl_Jax Ws - Fatal编程技术网

Java SOAP对象被其他2个引用并序列化为2个不同的

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");

这是从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");
        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解析器就可以按预期解组消息

谢谢你的邀请。。。顺便说一句,这对我来说有点奇怪,它就像未经处理的。