k10gaurav
k10gaurav

Reputation: 462

Oracle SOA Suite 12c invoke external service with additional SOAP headers

I have a business scenario where I have to invoke a client SOAP service that uses additional SOAP header parameters using Oracle SOA Suite 12c. When I test the web service independently via SOAP UI it shows below schema as input-

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:com="http://xmlns.client.org/Schema/Common/1.0/Common.xsd" xmlns:user="http://xmlns.uppcl.org/Schema/UserAccess/2.0/UserAccess.xsd">
   <soapenv:Header>
   <wsse:Security xmlns:wsse="http://docs.demo-open.org/wss/2004/01/demo-200401-wss-wssecurity-secext-1.0.xsd">
         <wsse:UsernameToken xmlns:wsu="http://docs.demo-open.org/wss/2004/01/demo-200401-wss-wssecurity-utility-1.0.xsd">
            <wsse:Username>DemoUser</wsse:Username>
            <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">Demo@123</wsse:Password>
         </wsse:UsernameToken>
      </wsse:Security>
      <com:TransactionReference>
         <com:SourceSystemId>TXNSYSID</com:SourceSystemId>
         <com:TxID>0403216376127836</com:TxID>
         <!--Optional:-->
         <com:BusinessID>DTUIQS</com:BusinessID>
      </com:TransactionReference>
   </soapenv:Header>
   <soapenv:Body>
      <user:CheckUserRequest>
  <user:UserId>USER_ID</user:UserId>
  </user:CheckUserRequest>

As we can see additional header elements wsse:Security > UsernameToken > Username/Password , TransactionReference > SourceSystemId / TxID / BusinessID as XML node.

Further, I configured the SOAP adapter in my SOA composite but it has only one input argument UserId. Now I am not able to figure out how can I pass additional headers (username/password, SourceSystemId / TxID / BusinessID ) in SOA Header for target web service invocation in my SOA composite.

Upvotes: 1

Views: 1250

Answers (1)

luigi
luigi

Reputation: 1

add this snippet to omitt default wsa tags

<binding.ws> <property name="oracle.soa.ws.outbound.omitWSA" type="xs:boolean" many="false" override="may">true</property> </binding.ws>

Upvotes: 0

Related Questions