Java 使soap响应显示带有xsd文件的自定义对象列表

Java 使soap响应显示带有xsd文件的自定义对象列表,java,xml,maven,soap,xsd,Java,Xml,Maven,Soap,Xsd,因此,我使用SpringMavenJava创建了自己的SOAP服务。我能够创建一个自定义对象“Machine”,它显示机器的主机名和ip地址。因为有多台机器,所以我的目标是显示机器列表,而不是只显示一台机器 我的xsd文件: <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://company.be/cloudtool/backendProofOfConcept" targetNamespace="

因此,我使用SpringMavenJava创建了自己的SOAP服务。我能够创建一个自定义对象“Machine”,它显示机器的主机名和ip地址。因为有多台机器,所以我的目标是显示机器列表,而不是只显示一台机器

我的xsd文件:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:tns="http://company.be/cloudtool/backendProofOfConcept"
targetNamespace="http://company.be/cloudtool/backendProofOfConcept"
elementFormDefault="qualified">

<xs:element name="getDevicesRequest">
    <xs:complexType>
        <!-- This one isn't used -->
    </xs:complexType>
</xs:element>

<xs:element name="getDevicesResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="machine" type="tns:machine" />
        </xs:sequence>
    </xs:complexType>
</xs:element> -->

<xs:complexType name="machine">
    <xs:sequence>
        <xs:element name="hostname" type="xs:string" />
        <xs:element name="primaryip" type="xs:string" />
    </xs:sequence>
</xs:complexType>  

-->

当我使用soapUI进行测试时,我得到以下输出:


但我希望它在列表中显示每台机器的主机名和ip。我发现了以下内容,但这似乎只适用于简单类型(如int或string),而不适用于自定义类型(如我的机器类型)

根据你的问题,我认为这应该是可行的:

<xs:element name="getDevicesResponse">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="machine" type="tns:machine" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
    </xs:complexType>
</xs:element>


当我使用:minOccurs=“0”maxOccurs=“unbounded”时,不会生成GetDeviceResponse类中的setMachine函数。所以我无法设置多台机器。那么你应该有一个列表。您可能需要调用
getMachines().add(mashinexy)之类的函数以添加到其中。也许将生成的类添加到您的问题中。非常感谢,这就是我需要的!