Arrays 使用Jax WS从WSDL生成的Java代码没有正确映射数组/列表?

Arrays 使用Jax WS从WSDL生成的Java代码没有正确映射数组/列表?,arrays,xml,list,wsdl,jax-ws,Arrays,Xml,List,Wsdl,Jax Ws,我设法使用Jax-WS从WSDL生成java代码。但是,代码没有按预期工作 我使用能够正确返回结果的SoapUI测试WSDL 比较XMLJava代码和SoupUI,我发现java代码的xml标记不正确 **********使用SoupUI*************** <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sun="XXX/" xmlns:sun1="XXX.Con

我设法使用Jax-WS从WSDL生成java代码。但是,代码没有按预期工作

我使用能够正确返回结果的SoapUI测试WSDL

比较XMLJava代码和SoupUI,我发现java代码的xml标记不正确

**********使用SoupUI***************

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sun="XXX/" xmlns:sun1="XXX.Contracts/">
   <soapenv:Header/>
   <soapenv:Body>
      <sun:SearchXXX>
         <!--Optional:-->
         <sun:Identifier>?</sun:Identifier>
         <!--Optional:-->
         <sun:XXXSearchField>?</sun:XXXSearchField>
         <!--Optional:-->
         <sun:query>?</sun:query>
         <!--Optional:-->
         <sun:searchType>?</sun:searchType>
         <!--Optional:-->
         <sun:responseParameters>
            <!--Optional:-->
            <sun1:RelatedXXX>
               <!--Zero or more repetitions:-->
               <sun1:RelatedXXX>?</sun1:RelatedXXX>
            </sun1:RelatedXXX>
         </sun:responseParameters>
      </sun:SearchXXX>
   </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <SearchXXX xmlns="...">
            <Identifier>???</Identifier>
            <XXXSearchField>???</XXXSearchField>
            <query>???</query>
            <searchType>???</searchType>
            <responseParameters>
                <ns2:ArrayOfRelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                </ns2:ArrayOfRelatedXXX>
            </responseParameters>
        </SearchXXX>
    </S:Body>
</S:Envelope>
<xs:complexType name="ResponseParameters">
    <xs:sequence>
        <xs:element minOccurs="0" name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="ResponseParameters" nillable="true" type="tns:ResponseParameters"/>
<xs:element name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
<xs:complexType name="ArrayOfRelatedXXX">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="RelatedXXX" type="tns:RelatedXXX"/>
    </xs:sequence>
</xs:complexType>
**********使用SoupUI***************

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sun="XXX/" xmlns:sun1="XXX.Contracts/">
   <soapenv:Header/>
   <soapenv:Body>
      <sun:SearchXXX>
         <!--Optional:-->
         <sun:Identifier>?</sun:Identifier>
         <!--Optional:-->
         <sun:XXXSearchField>?</sun:XXXSearchField>
         <!--Optional:-->
         <sun:query>?</sun:query>
         <!--Optional:-->
         <sun:searchType>?</sun:searchType>
         <!--Optional:-->
         <sun:responseParameters>
            <!--Optional:-->
            <sun1:RelatedXXX>
               <!--Zero or more repetitions:-->
               <sun1:RelatedXXX>?</sun1:RelatedXXX>
            </sun1:RelatedXXX>
         </sun:responseParameters>
      </sun:SearchXXX>
   </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <SearchXXX xmlns="...">
            <Identifier>???</Identifier>
            <XXXSearchField>???</XXXSearchField>
            <query>???</query>
            <searchType>???</searchType>
            <responseParameters>
                <ns2:ArrayOfRelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                </ns2:ArrayOfRelatedXXX>
            </responseParameters>
        </SearchXXX>
    </S:Body>
</S:Envelope>
<xs:complexType name="ResponseParameters">
    <xs:sequence>
        <xs:element minOccurs="0" name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="ResponseParameters" nillable="true" type="tns:ResponseParameters"/>
<xs:element name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
<xs:complexType name="ArrayOfRelatedXXX">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="RelatedXXX" type="tns:RelatedXXX"/>
    </xs:sequence>
</xs:complexType>
**********来自Java代码***************

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sun="XXX/" xmlns:sun1="XXX.Contracts/">
   <soapenv:Header/>
   <soapenv:Body>
      <sun:SearchXXX>
         <!--Optional:-->
         <sun:Identifier>?</sun:Identifier>
         <!--Optional:-->
         <sun:XXXSearchField>?</sun:XXXSearchField>
         <!--Optional:-->
         <sun:query>?</sun:query>
         <!--Optional:-->
         <sun:searchType>?</sun:searchType>
         <!--Optional:-->
         <sun:responseParameters>
            <!--Optional:-->
            <sun1:RelatedXXX>
               <!--Zero or more repetitions:-->
               <sun1:RelatedXXX>?</sun1:RelatedXXX>
            </sun1:RelatedXXX>
         </sun:responseParameters>
      </sun:SearchXXX>
   </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <SearchXXX xmlns="...">
            <Identifier>???</Identifier>
            <XXXSearchField>???</XXXSearchField>
            <query>???</query>
            <searchType>???</searchType>
            <responseParameters>
                <ns2:ArrayOfRelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                </ns2:ArrayOfRelatedXXX>
            </responseParameters>
        </SearchXXX>
    </S:Body>
</S:Envelope>
<xs:complexType name="ResponseParameters">
    <xs:sequence>
        <xs:element minOccurs="0" name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="ResponseParameters" nillable="true" type="tns:ResponseParameters"/>
<xs:element name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
<xs:complexType name="ArrayOfRelatedXXX">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="RelatedXXX" type="tns:RelatedXXX"/>
    </xs:sequence>
</xs:complexType>
**********来自Java代码***************

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sun="XXX/" xmlns:sun1="XXX.Contracts/">
   <soapenv:Header/>
   <soapenv:Body>
      <sun:SearchXXX>
         <!--Optional:-->
         <sun:Identifier>?</sun:Identifier>
         <!--Optional:-->
         <sun:XXXSearchField>?</sun:XXXSearchField>
         <!--Optional:-->
         <sun:query>?</sun:query>
         <!--Optional:-->
         <sun:searchType>?</sun:searchType>
         <!--Optional:-->
         <sun:responseParameters>
            <!--Optional:-->
            <sun1:RelatedXXX>
               <!--Zero or more repetitions:-->
               <sun1:RelatedXXX>?</sun1:RelatedXXX>
            </sun1:RelatedXXX>
         </sun:responseParameters>
      </sun:SearchXXX>
   </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <SearchXXX xmlns="...">
            <Identifier>???</Identifier>
            <XXXSearchField>???</XXXSearchField>
            <query>???</query>
            <searchType>???</searchType>
            <responseParameters>
                <ns2:ArrayOfRelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                </ns2:ArrayOfRelatedXXX>
            </responseParameters>
        </SearchXXX>
    </S:Body>
</S:Envelope>
<xs:complexType name="ResponseParameters">
    <xs:sequence>
        <xs:element minOccurs="0" name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="ResponseParameters" nillable="true" type="tns:ResponseParameters"/>
<xs:element name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
<xs:complexType name="ArrayOfRelatedXXX">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="RelatedXXX" type="tns:RelatedXXX"/>
    </xs:sequence>
</xs:complexType>
从上面可以看出,在responseParameters标记下,java代码正在创建ArrayOfRelatedXXX标记NotRelatedxxx。这导致调用失败

对于这种情况,有没有办法正确地生成java代码?我附加了wsdl部分,如下所示。它似乎使用complexType名称ArrayOfRelatedXXX而不是元素名称

**********WSDL************

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sun="XXX/" xmlns:sun1="XXX.Contracts/">
   <soapenv:Header/>
   <soapenv:Body>
      <sun:SearchXXX>
         <!--Optional:-->
         <sun:Identifier>?</sun:Identifier>
         <!--Optional:-->
         <sun:XXXSearchField>?</sun:XXXSearchField>
         <!--Optional:-->
         <sun:query>?</sun:query>
         <!--Optional:-->
         <sun:searchType>?</sun:searchType>
         <!--Optional:-->
         <sun:responseParameters>
            <!--Optional:-->
            <sun1:RelatedXXX>
               <!--Zero or more repetitions:-->
               <sun1:RelatedXXX>?</sun1:RelatedXXX>
            </sun1:RelatedXXX>
         </sun:responseParameters>
      </sun:SearchXXX>
   </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <SearchXXX xmlns="...">
            <Identifier>???</Identifier>
            <XXXSearchField>???</XXXSearchField>
            <query>???</query>
            <searchType>???</searchType>
            <responseParameters>
                <ns2:ArrayOfRelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                </ns2:ArrayOfRelatedXXX>
            </responseParameters>
        </SearchXXX>
    </S:Body>
</S:Envelope>
<xs:complexType name="ResponseParameters">
    <xs:sequence>
        <xs:element minOccurs="0" name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="ResponseParameters" nillable="true" type="tns:ResponseParameters"/>
<xs:element name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
<xs:complexType name="ArrayOfRelatedXXX">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="RelatedXXX" type="tns:RelatedXXX"/>
    </xs:sequence>
</xs:complexType>
**********WSDL************

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sun="XXX/" xmlns:sun1="XXX.Contracts/">
   <soapenv:Header/>
   <soapenv:Body>
      <sun:SearchXXX>
         <!--Optional:-->
         <sun:Identifier>?</sun:Identifier>
         <!--Optional:-->
         <sun:XXXSearchField>?</sun:XXXSearchField>
         <!--Optional:-->
         <sun:query>?</sun:query>
         <!--Optional:-->
         <sun:searchType>?</sun:searchType>
         <!--Optional:-->
         <sun:responseParameters>
            <!--Optional:-->
            <sun1:RelatedXXX>
               <!--Zero or more repetitions:-->
               <sun1:RelatedXXX>?</sun1:RelatedXXX>
            </sun1:RelatedXXX>
         </sun:responseParameters>
      </sun:SearchXXX>
   </soapenv:Body>
</soapenv:Envelope>
<?xml version="1.0" ?>
<S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/">
    <S:Body>
        <SearchXXX xmlns="...">
            <Identifier>???</Identifier>
            <XXXSearchField>???</XXXSearchField>
            <query>???</query>
            <searchType>???</searchType>
            <responseParameters>
                <ns2:ArrayOfRelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                    <ns2:RelatedXXX>???</ns2:RelatedXXX>
                </ns2:ArrayOfRelatedXXX>
            </responseParameters>
        </SearchXXX>
    </S:Body>
</S:Envelope>
<xs:complexType name="ResponseParameters">
    <xs:sequence>
        <xs:element minOccurs="0" name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
    </xs:sequence>
</xs:complexType>
<xs:element name="ResponseParameters" nillable="true" type="tns:ResponseParameters"/>
<xs:element name="RelatedXXX" nillable="true" type="tns:ArrayOfRelatedXXX"/>
<xs:complexType name="ArrayOfRelatedXXX">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="RelatedXXX" type="tns:RelatedXXX"/>
    </xs:sequence>
</xs:complexType>
请帮忙

谢谢