We use CXF in Apache Camel to process SOAP messages. We have some old Camel 
routes that use SOAP 1.1 in the CXF sender component. The new ones use SOAP 
1.2. It turned out that it is possible  to use the same address in the endpoint 
if the SOAP versions are different. Looking in the CXF code it seems that  the 
class SoapBindingFactory   in method addListener(Destination d, Endpoint e)    
only throws an error if the SOAP versions are matching:
if (b instanceof org.apache.cxf.binding.soap.SoapBinding
                    && b2 instanceof org.apache.cxf.binding.soap.SoapBinding
                    && 
((org.apache.cxf.binding.soap.SoapBinding)b).getSoapVersion()
                        
.equals(((org.apache.cxf.binding.soap.SoapBinding)b2).getSoapVersion())
                    && Boolean.FALSE.equals(o)) {

                    throw new RuntimeException("Soap "
                                               + 
((org.apache.cxf.binding.soap.SoapBinding)b)
                                                   
.getSoapVersion().getVersion()
                                               + " endpoint already registered 
on address "
                                               + 
e.getEndpointInfo().getAddress());
                }
We are a little bit behind in the CXF version (3.2.11) but I think the code is 
the same in the master branch. Does it mean that this should work or is it a 
bug?

Best Regards,

Jörg

Reply via email to