Pages

Translate this blog to many language

Wednesday, April 24, 2013

i have two web services with two complex types with identical structures and a different names. how do ensure compatibility with bpel?


I am trying to coordinate two different web services with bpel. I want to take the output array of integers from one service and feed it to the next web service as input. I am doing with this with a bpel assign construct which says that the two complex types are not compatible.
Here are the relevent parts of the WSDLs:
Person Position Info returns an array of integers as a complex type:
<wsdl:message name="personPositionInfoResponse">
<wsdl:part name="parameters" element="ns:personPositionInfoResponse"/>
</wsdl:message>

<xs:element name="personPositionInfoResponse">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="return" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Position Skill Management takes an array of integers as input:
<wsdl:message name="positionSkillRequest">
<wsdl:part name="parameters" element="ns:positionSkill"/>
</wsdl:message>

<xs:element name="positionSkill">
<xs:complexType>   
<xs:sequence>
<xs:element minOccurs="0" name="positionID" type="xs:int"/>
</xs:sequence>
</xs:complexType>
</xs:element>
This is my best idea so far:
    <bpel:copy>
        <bpel:from>
            <![CDATA[$personalInfoServiceOutput.parameters]]>
        </bpel:from>
        <bpel:to >
            <![CDATA[$positionSkillManagementInput.parameters]]>
        </bpel:to>
    </bpel:copy>
returns...
The from-spec of "" is not compatible with to-spec of "" - Element in httplocalhost...:8080/axis2/services/PersonalInfoService?wsdl differs from in httplocalhost...:8080/axis2/services/PositionSkillManagementService?wsdl - different QNames: ns:return vs ns:positionID

No comments:

Post a Comment

Search