Friday 18 November 2016

ESS Error when invoking OSB WebService

When I try to schedule OSB web-service using Oracle enterprise scheduler (ESS 12.2.1.0.0), I ran into following issue;

Exception:
com.bea.wli.sb.service.handlerchain.HandlerException: The message must be an instance of: {http://www.w3.org/2003/05/soap-envelope}Envelope
com.bea.wli.sb.service.handlerchain.HandlerException: The message must be an instance of: {http://www.w3.org/2003/05/soap-envelope}Envelope
at com.bea.wli.sb.service.handlerchain.handlers.ComputeOperation$1.getPayload(ComputeOperation.java:204)
at com.bea.wli.sb.services.bindinglayer.BindingOperationMapper$QNameMapper.computeOperationName(BindingOperationMapper.java:564)
at com.bea.wli.sb.service.handlerchain.handlers.ComputeOperation.dispatch(ComputeOperation.java:93)
at com.bea.wli.sb.service.handlerchain.handlers.AbstractHandler.dispatch(AbstractHandler.java:132)

In server log file, I found out ESS posting SOAP message using SOAP 1.1 format while OSB service expect SOAP message in SOAP 1.2 format as the OSB service I'm trying to schedule only support SOAP 1.2. It seems ESS only support SOAP 1.1

Server Log:
<Nov 18, 2016 8:18:00 AM GMT> <Error> <oracle.osb.resources.service.service> <OSB-398325> <An error has occurred while parsing the payload. Payload details:
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">  

SOAP 1.1 use SOAP namespace of http://schemas.xmlsoap.org/soap/envelope/ while SOAP 1.2 use http://www.w3.org/2003/05/soap-envelope.

The simple solution is to add SOAP 1.1 binding in OSB proxy service.

No comments:

Post a Comment