Details
-
Bug
-
Status: Resolved
-
Major
-
Resolution: Fixed
-
1.3.2
-
None
-
Eclipse BPEL Designer, ODE, ...
Description
Hi!
It seems that ODE (or Axis?) is deleting namespace declarations and the according namespace prefixes from a variable that is initialized correctly (I gave my best at least). I tried a lot of things to heal this, but nothing worked. The called webservice throws a fault, because it cannot process the input correctly.
This is the request coming from ODE:
######################################################################################
<?xml version='1.0' encoding='UTF-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8090/epages/OSCStore.soap</addr:To>
<addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">urn://epages.de/WebService/OrderService/2009/01/getInfo</addr:Action>
<addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing">
<addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address>
</addr:ReplyTo>
<addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr4ji9g01nlk2</addr:MessageID>
</soapenv:Header>
<soapenv:Body>
<odens:getInfo xmlns:odens="urn://epages.de/WebService/OrderService/2009/01">
<Orders arrayType="xs:string[]" type="odens:type_GetInfo_In">
<Path type="xs:string">EMPTY2</Path>
</Orders>
<Attributes arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
<AddressAttributes arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
<LineItemAttributes arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
<LanguageCodes arrayType="xs:string[]" type="odens:type_LanguageCodes_In" />
</odens:getInfo>
</soapenv:Body>
</soapenv:Envelope>
######################################################################################
It is initialized this way:
######################################################################################
<bpel:assign validate="no" name="Assign">
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><Orders soapenc:arrayType="xs:string[]" type="odens:type_GetInfo_In">
<Path type="xs:string">EMPTY2</Path>
</Orders></bpel:literal>
</bpel:from>
<bpel:to part="Orders" variable="OrderDetailPLRequest"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><Attributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In"></Attributes></bpel:literal>
</bpel:from>
<bpel:to part="Attributes" variable="OrderDetailPLRequest"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><AddressAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In"></AddressAttributes></bpel:literal>
</bpel:from>
<bpel:to part="AddressAttributes" variable="OrderDetailPLRequest"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><LineItemAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In"></LineItemAttributes></bpel:literal>
</bpel:from>
<bpel:to part="LineItemAttributes" variable="OrderDetailPLRequest"></bpel:to>
</bpel:copy>
<bpel:copy>
<bpel:from>
<bpel:literal xml:space="preserve"><LanguageCodes soapenc:arrayType="xs:string[]" type="odens:type_LanguageCodes_In"></LanguageCodes></bpel:literal>
</bpel:from>
<bpel:to part="LanguageCodes" variable="OrderDetailPLRequest"></bpel:to>
</bpel:copy>
</bpel:assign>
######################################################################################
This modified request works fine, when called from SoapUI:
######################################################################################
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
<soapenv:Header>
<addr:To xmlns:addr="http://www.w3.org/2005/08/addressing">http://localhost:8090/epages/OSCStore.soap</addr:To>
<addr:Action xmlns:addr="http://www.w3.org/2005/08/addressing">urn://epages.de/WebService/OrderService/2009/01/getInfo</addr:Action>
<addr:ReplyTo xmlns:addr="http://www.w3.org/2005/08/addressing">
<addr:Address>http://www.w3.org/2005/08/addressing/anonymous</addr:Address>
</addr:ReplyTo>
<addr:MessageID xmlns:addr="http://www.w3.org/2005/08/addressing">uuid:hqejbhcnphr4ji9g01nljq</addr:MessageID>
</soapenv:Header>
<soapenv:Body>
<odens:getInfo
xmlns:odens="urn://epages.de/WebService/OrderService/2009/01"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<Orders soapenc:arrayType="xs:string[]" type="odens:type_GetInfo_In">
<Path type="xs:string">EMPTY2</Path>
</Orders>
<Attributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
<AddressAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
<LineItemAttributes soapenc:arrayType="xs:string[]" type="odens:type_AttributeNames_In" />
<LanguageCodes soapenc:arrayType="xs:string[]" type="odens:type_LanguageCodes_In" />
</odens:getInfo>
</soapenv:Body>
</soapenv:Envelope>
######################################################################################
On the service side it is only about the namspace prefix soapenc: and xs:.
I don't have any idea how to declare the namespaces in a way that the according prefixes are preserved in the requests.
Can anybody help me with this?
Thanks in advance!
Andreas