2 Replies Latest reply: Aug 27, 2009 1:15 PM by 719460 RSS

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

    719460
      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