Please help me on this error.I have a soap client calling the service with 3 operation. So in flow1 i'm setting the session varaible to store the operation. And in flow2 i have used set property to accessing those variables to come as outbound message Property before the cxf:jaxws-client. As descripted in this link: mule dynamically setting soap operation but i'm getting exception like "local part cannot be "null" when creating a QName".
I have monitored by keeping logger after set property. Can able to see the operation with values in outbound message property. Not sure why the value is not placed in soap operation field.Please find my xml config.
<flow name="Flow1" doc:name="eFlow" tracking:enable-default-events="false">
<wmq:inbound-endpoint queue="InputQ" connector ref="WMQ_Connector" doc:name="connector">
<wmq:transaction action="NONE"/>
</wmq:inbound-endpoint>
<set-session-variable variableName="cxf_operation"
value="#[xpath('fn:local-name(/root/*[2])')]" doc:name="Set_Operation" />
<some logic here.../>
</flow>
<flow name="Service_call" doc:name="Service">
<set-property propertyName="operation" value="#[sessionVars.cxf_operation]"
doc:name="Property" />
<logger message="***outbound properties: #[message.outboundProperties]***" level="INFO" doc:name="Logger"/>
<cxf:jaxws-client enableMuleSoapHeaders="true" doc:name="SOAP" serviceClass="com.valid.ICase"/>
<http:outbound-endpoint exchange-pattern="request-response"
method="POST" doc:name="HTTP" address="http://localhost:8085/callingService" />
<some logic here.../>
</flow>
I havn't set soap operation since i have set property. Still i'm getting error. Can anyone help on this. But when i manually type the operation name. Able to see the response.