Hello, I have a cxf client deployed under a web-module A on WAS 8.5 with versions as cxf 2.7.8 and a wss4j 1.6.13. The service provider B is on Tomcat with similar configuration. I had to set the class loader policy for web project to parent last and I also disabled Websphere's JAXWS engine. I have been able to send a message from A to B without any issues. UserNameToken profile worked as well. Both the outgoing and incoming messages are signed. When I send a signature from web module on Websphere, module in tomcat is able to verify the signature. But when I send a signature and encrypted data from tomcat web module to the one in WebSphere 8.5, the thread hangs and I see following in the logs after sometime: I am not sure why it uses Webshpere specific classes even though I have disabled its WS engine.
----------------------------------- [2/24/14 16:37:48:802 EST] 0000005d ThreadMonitor W WSVR0605W: Thread "WebContainer : 4" (000001b0) has been active for 603981 milliseconds and may be hung. There is/are 5 thread(s) in total in the server that may be hung. at com.ibm.ws.webservices.engine.xmlsoap.dom.impl.DOMElementImpl.<init>(DOMElementImpl.java:97) at com.ibm.ws.webservices.engine.xmlsoap.dom.impl.DOMElementImpl_MS.<init>(DOMElementImpl_MS.java:133) at com.ibm.ws.webservices.engine.xmlsoap.SOAPElement.<init>(SOAPElement.java:465) at com.ibm.ws.webservices.engine.xmlsoap.SOAPBodyElement.<init>(SOAPBodyElement.java:100) at com.ibm.ws.webservices.engine.xmlsoap.SOAPBody.createChildElement(SOAPBody.java:354) at com.ibm.ws.webservices.engine.xmlsoap.SOAPElement.wrapChildDOMNode(SOAPElement.java:3218) at com.ibm.ws.webservices.engine.xmlsoap.SOAPElement.insertBefore(SOAPElement.java:1896) at org.apache.xerces.dom.ParentNode.internalInsertBefore(Unknown Source) at org.apache.xerces.dom.ParentNode.replaceChild(Unknown Source) at org.apache.xml.security.encryption.XMLCipher.decryptElement(XMLCipher.java:1633) at org.apache.xml.security.encryption.XMLCipher.decryptElementContent(XMLCipher.java:1656) at org.apache.xml.security.encryption.XMLCipher.doFinal(XMLCipher.java:978) at org.apache.ws.security.processor.ReferenceListProcessor.decryptEncryptedData(ReferenceListProcessor.java:337) at org.apache.ws.security.processor.EncryptedKeyProcessor.decryptDataRef(EncryptedKeyProcessor.java:451) at org.apache.ws.security.processor.EncryptedKeyProcessor.decryptDataRefs(EncryptedKeyProcessor.java:380) at org.apache.ws.security.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:178) at org.apache.ws.security.processor.EncryptedKeyProcessor.handleToken(EncryptedKeyProcessor.java:65) at org.apache.ws.security.WSSecurityEngine.processSecurityHeader(WSSecurityEngine.java:396) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:270) at org.apache.cxf.ws.security.wss4j.WSS4JInInterceptor.handleMessage(WSS4JInInterceptor.java:95) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:272) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:835) Can someone please help me find out what's going wrong here? Thanks, Giriraj.