Products | Versions |
---|---|
TIBCO ActiveMatrix BusinessWorks | - |
Not Applicable | - |
Resolution:
When there is an external concrete WSDL to create a SOAP request with the JMS transport, if the value of the transport attribute is not set correctly, the SOAP request creation fails with the following error:
2014 May 19 12:22:56:552 GMT -7 BW.DummyForActional Error [] SoapMessage::initRequestMessage Job-8000 Error in [TEST/OneWay.process/SOAPRequestReply]
SoapMessage::initRequestMessage
at com.tibco.bw.service.binding.soap.impl.XDataSoapHelper.initRequestMessage(Unknown Source)
at com.tibco.bw.soap.share.reqrep.SoapRequestor.prepareMessage(Unknown Source)
at com.tibco.bw.soap.share.reqrep.SoapRequestor.prepareMessage(Unknown Source)
at com.tibco.bw.soap.share.reqrep.SoapRequestor.execute(Unknown Source)
at com.tibco.plugin.soap.SOAPSendReceiveActivity.eval(Unknown Source)
at com.tibco.pe.plugin.Activity.eval(Unknown Source)
at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
at com.tibco.pe.core.Job.a(Unknown Source)
at com.tibco.pe.core.Job.k(Unknown Source)
at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)
caused by: java.lang.NullPointerException
at com.tibco.spin.utils.ContextUtils.a(Unknown Source)
at com.tibco.spin.utils.ContextUtils.isDocumentStyle(Unknown Source)
at com.tibco.spin.soap.processors.outbound.SoapBodySerializer.do(Unknown Source)
at com.tibco.spin.soap.processors.outbound.SoapBodySerializer.process(Unknown Source)
at com.tibco.spin.soap.processors.outbound.SoapEnvelopeSerializer.process(Unknown Source)
at com.tibco.spin.soap.processors.SoapPipeline.process(Unknown Source)
at com.tibco.spin.soap.processors.SoapPipeline.prepare(Unknown Source)
at com.tibco.bw.service.binding.soap.impl.XDataSoapHelper.initRequestMessage(Unknown Source)
at com.tibco.bw.soap.share.reqrep.SoapRequestor.prepareMessage(Unknown Source)
at com.tibco.bw.soap.share.reqrep.SoapRequestor.prepareMessage(Unknown Source)
at com.tibco.bw.soap.share.reqrep.SoapRequestor.execute(Unknown Source)
at com.tibco.plugin.soap.SOAPSendReceiveActivity.eval(Unknown Source)
at com.tibco.pe.plugin.Activity.eval(Unknown Source)
at com.tibco.pe.core.TaskImpl.eval(Unknown Source)
at com.tibco.pe.core.Job.a(Unknown Source)
at com.tibco.pe.core.Job.k(Unknown Source)
at com.tibco.pe.core.JobDispatcher$JobCourier.a(Unknown Source)
at com.tibco.pe.core.JobDispatcher$JobCourier.run(Unknown Source)
Symptoms:
=======
The WSDL is provided by an external service provider and the transport for the service invocation is JMS. The transport attribute under soap:binding in the WSDL indicates that JMS is being used. TIBCO requires a predefined/fix attribute value for this. If the concrete WSDL has a different attribute value than what TIBCO expects, it throws the error above.
Cause:
=====
As of now, there is no standard specification for SOAP messages over JMS. TIBCO implements this based on TIBCO's own specification. According to the BW documentation: SOAP palette --> SOAP Message Over the JMS Transport WSDL Binding, the WSDL Binding for SOAP over JMS varies only slightly from the SOAP over HTTP binding. The transport attribute under soap:binding indicates that JMS is being used. The attribute must have the value: http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS.
Resolution:
=======
To resolve this issue, replace the existing value under transport binding to "http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS". For example, in the attached WSDL, (Filename: conwsdl_problematic.wsdl) the SOAP binding transport has the value: http://scehmas.xmlsoap.org/soap/jms, so if this WSDL is used to create the SOAP request, it will fail with the above error trace. This has to be replaced with "http://www.tibco.com/namespaces/ws/2004/soap/binding/JMS" to avoid the error. See the attached (Filename: conwsdl_correct.wsdl).