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