SOAP Request Has Invalid XML Payload When Running a BPEL Instance With XML Arrays in the Console

(Doc ID 819961.1)

Last updated on NOVEMBER 05, 2016

Applies to:

Web Services - Version: 10.1.3.3.0 to 10.1.3.4.0
Oracle(R) BPEL Process Manager - Version: 10.1.3.3 to 10.1.3.4
This problem can occur on any platform.

Symptoms

On 10.1.3.3.1 in Production:
When running a BPEL instance with XML arrays in BPEL console, the SOAP request has an invalid XML payload, i.e. it has incorrect namespaces, therefore the SOAP response is incorrect.

For example:

SOAP REQUEST:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
<soap:Body xmlns:ns1="http://...URL1">
<ns1:SectorTaabs_Input>
<ns1:request>
<ns1:TransactionId>1230</ns1:TransactionId>
<ns1:DescriptionValues
xmlns:ns2="http://...URL2">
<ns2:DescriptionValue Index="1">
<ns2:Description>test 1230</ns2:Description>
</ns2:DescriptionValue>
</ns1:DescriptionValues>
<ns1:ShortNameValues
xmlns:ns3="http://...URL2">
<ns3:ShortNameValue Index="1">
<ns3:ShortName>test1230</ns3:ShortName>
</ns3:ShortNameValue>
</ns1:ShortNameValues>
</ns1:request>
</ns1:SectorTaabs_Input>
</soap:Body>
</soap:Envelope>


The SOAP RESPONSE is:

<outputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="payload"><SectorTaabs_InputResponse
xmlns="http://URL1">
<SectorTaabs_InputResult>
<TransactionId>1230</TransactionId>
<TransactionStatus>NO</TransactionStatus>
<ProcessingStatus>Failed</ProcessingStatus>
</SectorTaabs_InputResult>
</SectorTaabs_InputResponse>
</part></outputVariable>


The SOAP request is incorrect as it does not specify the correct namespaces.  By modifying the namespaces for both elements "DescriptionValues" and "ShortNameValues" from
"ns1:DescriptionValues" to "ns2:DescriptionValues" and from "ns1:ShortNameValues" to
"ns3:ShortNameValues" it works just fine.

The correct SOAP REQUEST is:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Header/>
  <soap:Body xmlns:ns1=" http://…URL1">
    <ns1:SectorTaabs_Input>
    <ns1:request>
      <ns1:TransactionId>1230</ns1:TransactionId>
        <ns2:DescriptionValues xmlns:ns2=" http://…URL2">
          <ns2:DescriptionValue Index="1">
            <ns2:Description>testing1230</ns2:Description>
          </ns2:DescriptionValue>
        </ns2:DescriptionValues>
      <ns3:ShortNameValues xmlns:ns3=" http://…URL2">
        <ns3:ShortNameValue Index="1">
          <ns3:ShortName>testing1230</ns3:ShortName>
        </ns3:ShortNameValue>
      </ns3:ShortNameValues>
   </ns1:request>
   </ns1:SectorTaabs_Input>
 </soap:Body>
</soap:Envelope>

 
In this case, the SOAP RESPONSE is correct:

<outputVariable><part xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
name="payload"><SectorTaabs_InputResponse
xmlns="http://...URL1">
<SectorTaabs_InputResult>
<TransactionId>1230</TransactionId>
<ProcessingStatus>Ok</ProcessingStatus>
<DescriptionValues xmlns="http://...URL2">
<DescriptionValue Index="1">
<Description>testing1230</Description>
</DescriptionValue>
...

</SectorTaabs_InputResult>
</SectorTaabs_InputResponse>
</part></outputVariable>

Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms