This discussion is archived
2 Replies Latest reply: Aug 27, 2009 11:15 AM by 719460 RSS

Oracle Service Bus 10.3 - split join how to set header for invoked service

719460 Newbie
Currently Being Moderated
In Oracle Service Bus 10.3 how can I set the header for the service being invoked. We make parallel calls to 2 different business services. One of the invoked service requires header to be set and I am unable to figure out how it can be done. Below are snippet of the code and WSDL.

--- Login Operation start ---
<operation name="login">
<wsdlsoap:operation soapAction="blah"/>
<input name="loginRequest">
<wsdlsoap:body use="literal"/>
<wsdlsoap:header message="passport:loginHeader" part="hppwsHeaderElement" use="literal"/>
</input>
<output name="loginResponse">
<wsdlsoap:body use="literal"/>
</output>
<fault name="genericFaultException">
<wsdlsoap:fault name="genericFaultException" use="literal"/>
</fault>
</operation>
--- Login Operation end ---

--- hppwsHeader Element --
<complexType name="hppwsHeaderElement">
<sequence>
<element maxOccurs="1" minOccurs="0" name="version" type="tns1:version"/>
<element maxOccurs="1" minOccurs="0" name="tx-id" type="tns1:tx-id"/>
<element maxOccurs="1" minOccurs="1" name="systemLangCode" type="xsd:string"/>
</sequence>
</complexType>

--- LoginRequest Element ---
<xs:element name="loginRequestElement" type="s0:loginRequestType"/>
<xs:complexType name="loginRequestType">
<xs:sequence>
<xs:element name="userId" minOccurs="1" maxOccurs="1" type="xs:string"/>
<xs:element name="password" minOccurs="1" maxOccurs="1" type="xs:string"/>
</xs:sequence>
</xs:complexType>

--- LoginResponse Element ---
<xs:element name="loginResponseElement" type="s0:loginResultType"/>
<xs:complexType name="loginResultType">
<xs:sequence>
<xs:element name="sessionToken" minOccurs="1" maxOccurs="1" type="xs:string"/>
</xs:sequence>
</xs:complexType>

In Oracle Workshop for WebLogic when I create a split-join .flow file while adding the invoke service call to login operation I am prompted to create the loginRequest and loginResponse variables. I can assign the appropriate expression to loginRequest.loginRequestElement prior to making the invoke call but then the backend business call fails because "systemLangCode" is not defined and set. Actual fault is

<ns1:genericFault xmlns:ns1="http://hppcbl.globalops.company.com/webservice">
<systemLangCode>en</systemLangCode>
<fault>
<ruleNumber>589</ruleNumber>
<fieldName>systemLangCode</fieldName>
<code>field.empty</code>
<desc>System language code is required.</desc>
<ftype>2</ftype>
</fault>
</ns1:genericFault>


I would really appreciate if someone could guide me on how to resolve this

Regards,
-Nilay

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points