We are possibly running into problems how sy soap component populates request SOAP action. In our environment there are very seldom instances where outbound request payload does not match its corresponding SOAPAction (this is reported by the target service application - we are missing logs on our side unfortunately). Issue seems to be triggered when a reference with soap binding is invoked concurrently with different operations. What strikes me a possible cause is that in org.switchyard.component.soap.OutboundHandler _dispatcher instance usage is not thread-safe and according to http://cxf.apache.org/faq.html it should be. More specifically https://github.com/jboss-switchyard/components/blob/master/soap/src/main/java/org/switchyard/component/soap/OutboundHandler.java#L333 https://github.com/apache/cxf/blob/master/core/src/main/java/org/apache/cxf/endpoint/ClientImpl.java#L249 where thread.local.request.context is not set Same instance of internal cxf client context map is received for every invocation. Therefore if invoked in parallel it could cause that SOAPAction can get overwritten before the actual http request is internally composed. |