Issue while accepting soap request from upstream through provider WSD

Hi All,

I have a soap reuest in the below format

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance” xmlns:xsd=“XML Schema” xmlns:soap=“http://schemas.xmlsoap.org/soap/envelope/”>
soap:Header

string
string

</soap:Header>
soap:Body

string

</soap:Body>
</soap:Envelope>

I need to make provider WSD to accept this soap request from upstream. I tried to create custom header handlers to extract soap header. Steps are

  1. Created header document to import into WSDL. Here in the properties I have mentioned name space and local name.
  2. Created one flow service for request handler and added pub.soap.handler:handlerSpec service as specification reference under input/output section tab.
  3. Created another flow service to register handler. Invoked pub.soap.handler:registerWmProvider service to register handler . Service input values are

descriptiveName ? RequestHanlder flow service name
QNameList ? Soap header document name space and local name
handleRequestService? RequestHanlder flow service name

I ran register handler flow service to get handler registered.
4. Assigned handler to the WSDL in handlers tab and imported header document in operation tab.

After these steps I have copied WSDL url and opened in SOAP UI, request looks like below
<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:hl=“https://tp.commbank.com.au/hl/” xmlns:thir=“http://S03NPD1W2003.aud01.cbaidev01.com/ThirdPartyOS.Process”>
soapenv:Header
hl:auth
?
?
</hl:auth>
</soapenv:Header>
soapenv:Body
thir:thirdPartyOS_Str

?
</thir:thirdPartyOS_Str>
</soapenv:Body>
</soapenv:Envelope

I can take body of request in SoapBody variable and header document should be added to the pipeline as I enabled the “Add headers to the pipeline” property of WSDL, but its not appearing in pipeline data.

Please Clarify me whether this is correct way to capture soap request or not. If it is correct way please tell where I have missed out, If not please explain the logic to achieve this requirement.

Thanks,
Manikumar