2

我是 BPEL 和 Web 服务的新手。我有一个返回字符串数组的网络服务。在 BPEL 中,我调用此 Web 服务并在 Apache ODE 中部署该 Web 服务。我在 Eclipse 中使用 BPEL 设计器工具。

我从 BPEL 服务得到的结果是数组中的第一个元素,在控制台中我可以看到整个数组正在被传递。如何将输出设置为数组?我的输出变量的类型是字符串,我找不到诸如列表、数组或字符串列表之类的类型。

这个字符串列表:

<xs:element name="getAvailableBungalowsResponse">
            <xs:complexType>
                <xs:sequence>
                    <xs:element maxOccurs="unbounded" minOccurs="0" name="return" nillable="true" type="xs:string"/>
                </xs:sequence>
            </xs:complexType>
        </xs:element>

应该进入这个:

<complexType name="Bungalow">

            <sequence maxOccurs="unbounded" minOccurs="0">
                <element name="bungalowInfo" type="string"></element>
            </sequence>
        </complexType>

Bpel 从到到看起来像这样:

<bpel:copy>
            <bpel:from part="parameters" variable="HolidayVillageServiceLinkResponse">
            </bpel:from>
            <bpel:to part="bungalows" variable="output">
            </bpel:to>
        </bpel:copy>

我在 BPEL 设计器中遇到的错误如下:

The from-spec of "<xs:complexType>" is not compatible with to-spec of "<complexType "Bungalow">" - Element <ns:return> in platform:/resource/HolidayVillage/bpelContent/HollidayVillage.wsdl differs from <tns:bungalowInfo> in platform:/resource/HolidayVillage/bpelContent/HolidayVillageReservationArtifacts.wsdl - different QNames: ns:return vs tns:bungalowInfo HolidayVillageReservation.bpel  /HolidayVillage/bpelContent line 98 BPEL Validation Marker
4

1 回答 1

2

BPEL 中的类型是根据 XMLSchema 定义的,因此没有像数组或列表这样的概念,但是您可以通过将基数设置为无界来定义字符串元素的序列。如果您需要为返回值组装一个字符串列表,请参见此处

于 2013-01-06T19:21:47.580 回答