I am trying to invoke an ESB through an other ESB, which I developed using JDeveloper. I am getting the following error
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header/><env:Body><env:Fault xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><faultcode>env:ESBMessageProcessingFailed</faultcode><faultstring>ESB Dispatch failed with error Cannot get part 'rootId'. Part was not found in message; nested exception is:
org.collaxa.thirdparty.apache.wsif.WSIFException: Cannot get part 'rootId'. Part was not found in message</faultstring></env:Fault></env:Body></env:Envelope>
I am not getting an error when I invoke the second ESB directly. I am not sure what the issue is,.. Does anyone have any idea? Please do respond.
A workaround for the error message: Cannot get part 'rootId'. Part was not found in message
On the receiveing side Routing Service, add this endpoint property:
like this in the *.esbsvc
<property name="includeESBBinding" value="false"/>
"ESB by default generates ESB WSDL(Java Binding) and SOAP WSDL, By Default ESB WSDL will be invoked for better performance, We have a parameter called "includeESBBinding" to switch Off ESB WSDL, So that we can force to use SOAP based WSDL. So, All you have to do is to force to use SOAP Based WSDL by addding the parameter "includeESBBinding=false" in the Service Definition."
Now the challenge is to continue using the ESB WSDL, and get rid of the error message "Cannot get part 'rootId'".
IncludeESBBinding=false is a workaround, as it force usage of the SOAP based WSDL.
For performance reasons ESB WSDL should continue to be used, so what is the proper solution for this issue?