Talend ESB

SAM: Transport type JMS is not filled correctly in message events for JMS based requests.

Details

Description

When running a test where a consumer communicates with a provider via JMS, I see a wrong transport type: http://schemas.xmlsoap.org/soap/http .
As we are not using http, so we would expect a value that indicates that JMS was used. Stating that it is http is a bit misleading ...

2 2011-11-16 08:16:58.847 REQ_OUT 788 sopmac11 192.168.200.5 {http://services.test.esb.talend.org/Standard}StandardTestService {http://services.test.esb.talend.org/Standard}doOneway urn:uuid:c799d4b9-2b92-4e14-93cb-e53756823d23 urn:uuid:41d3bab5-fccd-4540-b6ec-a3e5c902c396 http://schemas.xmlsoap.org/soap/http false <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><flowId xmlns="http://www.talend.com/esb/sam/flowId/v1">urn:uuid:41d3bab5-fccd-4540-b6ec-a3e5c902c396</flowId><Action xmlns="http://www.w3.org/2005/08/addressing">http://http://services.test.esb.talend.org/Standard/StandardTestServiceProvider/doOneway</Action><MessageID xmlns="http://www.w3.org/2005/08/addressing">urn:uuid:c799d4b9-2b92-4e14-93cb-e53756823d23</MessageID><To xmlns="http://www.w3.org/2005/08/addressing">http://localhost:8085/services/tesb.test.participants.sam.provider/soap/StandardTestServiceProvider/</To><ReplyTo xmlns="http://www.w3.org/2005/08/addressing"><Address>http://www.w3.org/2005/08/addressing/none</Address></ReplyTo></soap:Header><soap:Body><ns2:OnewayRequest xmlns:ns2="http://services.test.esb.talend.org/Standard/types"><key>Oneway</key><value/></ns2:OnewayRequest></soap:Body></soap:Envelope>

Activity

Hide
d wolz added a comment -

Had a look into the code, the section responsible for reporting the transport type is
in MessageToEventMapper:

if (message.getExchange().getBinding() instanceof SoapBinding) {
SoapBinding soapBinding = (SoapBinding)message.getExchange().getBinding();
if (soapBinding.getBindingInfo() instanceof SoapBindingInfo) { SoapBindingInfo soapBindingInfo = (SoapBindingInfo)soapBinding.getBindingInfo(); messageInfo.setTransportType(soapBindingInfo.getTransportURI()); }
}
if (messageInfo.getTransportType() == null) { messageInfo.setTransportType("Unknown transport type"); }

What is the expected behaviour of this code for JMS? Seems that the transport type is retrieved using
soapBindingInfo.getTransportURI(), the corresponding code hasn't changed since RC2. May be
soapBindingInfo.getTransportURI() behaves differently for JMS in CXF 2.5.0 ?

Show
d wolz added a comment - Had a look into the code, the section responsible for reporting the transport type is in MessageToEventMapper: if (message.getExchange().getBinding() instanceof SoapBinding) { SoapBinding soapBinding = (SoapBinding)message.getExchange().getBinding(); if (soapBinding.getBindingInfo() instanceof SoapBindingInfo) { SoapBindingInfo soapBindingInfo = (SoapBindingInfo)soapBinding.getBindingInfo(); messageInfo.setTransportType(soapBindingInfo.getTransportURI()); } } if (messageInfo.getTransportType() == null) { messageInfo.setTransportType("Unknown transport type"); } What is the expected behaviour of this code for JMS? Seems that the transport type is retrieved using soapBindingInfo.getTransportURI(), the corresponding code hasn't changed since RC2. May be soapBindingInfo.getTransportURI() behaves differently for JMS in CXF 2.5.0 ?
Hide
Dai Xilai added a comment -

I reproduced this issue just using CXF 2.5.0 samples/jms_spring_config by adding SAM feature to this sample, the transport type which SAM agent got is : http://schemas.xmlsoap.org/soap/http

Looking into the source code of MessageToEventMapper, Using SoapBindingInfo is no problem. but getTransportURI() should return like "soap/jms", not "soap/http". so I think possiblly it's a issue from CXF transport side. I'll send a mail to the CXF mailinglist about this issue.

Show
Dai Xilai added a comment - I reproduced this issue just using CXF 2.5.0 samples/jms_spring_config by adding SAM feature to this sample, the transport type which SAM agent got is : http://schemas.xmlsoap.org/soap/http Looking into the source code of MessageToEventMapper, Using SoapBindingInfo is no problem. but getTransportURI() should return like "soap/jms", not "soap/http". so I think possiblly it's a issue from CXF transport side. I'll send a mail to the CXF mailinglist about this issue.
Hide
Christian Schneider added a comment -

The problem is in CXF. I am working on a patch now. See:
https://issues.apache.org/jira/browse/CXF-3920

Show
Christian Schneider added a comment - The problem is in CXF. I am working on a patch now. See: https://issues.apache.org/jira/browse/CXF-3920
Hide
Zsolt Beothy-Elo added a comment -

https://issues.apache.org/jira/browse/CXF-3920 seems to be fixed, so we should retest the issue using our release version together with CXF 2.5.1.

Show
Zsolt Beothy-Elo added a comment - https://issues.apache.org/jira/browse/CXF-3920 seems to be fixed, so we should retest the issue using our release version together with CXF 2.5.1.
Hide
Zsolt Beothy-Elo added a comment -

We first have to include cxf 2.5.1 before we can close the issue.

Show
Zsolt Beothy-Elo added a comment - We first have to include cxf 2.5.1 before we can close the issue.

People

Vote (0)
Watch (1)

Dates

  • Created:
    Updated:
    Resolved: