Hello, I am getting the exception "javax.xml.ws.soap.SOAPFaultException: No such Localname for SOAP URI" when implementing signature secruity with WS-Security in CXF. What does this mean? Anyone have any insights on what I can do to resolve this issue?
Honestly, I don't remember this being so difficult to implement in older CXF and I don't think I have ever seen this error before. I tried to to google it a lot today and by the looks of it, not many other people have seen this before either. I am on version 2.2 now. Could anyone please describe to me what this error means? What process do I need to resolve it? P.S. The web service works fine without the interceptors when I don't try and use WS-security. I followed the WS-Security instructions listed here: http://cwiki.apache.org/CXF20DOC/ws-security.html That is, I generated a keystore for my server side, generated a public key for my client. Imported the public key for my client into the keystore. Any assistance anyone can give me in regards to resolving this issue is greatly appreciated. Below is the whole message and exception, including the SOAP exchange and stuff.: log4j:WARN No appenders could be found for logger (org.apache.cxf.bus.spring.BusApplicationContext). log4j:WARN Please initialize the log4j system properly. Jun 16, 2009 11:00:10 AM org.apache.cxf.bus.spring.BusApplicationContext getConfigResources INFO: No cxf.xml configuration file detected, relying on defaults. Jun 16, 2009 11:00:14 AM org.apache.cxf.service.factory.ReflectionServiceFactoryBean buildServiceFromClass INFO: Creating Service {http://teams.ea.com/}EATeamsWSService from class com.ea.teams.EATeamsWS Jun 16, 2009 11:00:26 AM org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose INFO: Outbound Message --------------------------- ID: 1 Address: http://teams-rwsdv:9019/teamsws/EATeamsWS Encoding: UTF-8 Content-Type: text/xml Headers: {SOAPAction=[""], Accept=[*/*]} Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Header><wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" soap:mustUnderstand="1"><ds:Signature xmlns:ds="http://www.w3.org/2000/09/xmldsig#" Id="Signature-1"> <ds:SignedInfo> <ds:CanonicalizationMethod Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> <ds:SignatureMethod Algorithm="http://www.w3.org/2000/09/xmldsig#rsa-sha1" /> <ds:Reference URI="#id-2"> <ds:Transforms> <ds:Transform Algorithm="http://www.w3.org/2001/10/xml-exc-c14n#" /> </ds:Transforms> <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" /> <ds:DigestValue>9ugq2OUuSZq3m5dk2pchTf+XSNA=</ds:DigestValue> </ds:Reference> </ds:SignedInfo> <ds:SignatureValue> ntGCqu+lVsS5LWvKr2Bovba2xkOrIH7uOVwPk2GzEDVBUd6hdWY1Cw/l/DXH2MtFgokwNrJ2q74o 2wkjiZ+Tc2ak13ccUGAFWFuc0YmVoSZgYtRRZY/phhj7SHREQiodCeMQ7/4j8IZxZDf+JpGy3dwd js2fRIuc9g7AvpC7KX0= </ds:SignatureValue> <ds:KeyInfo Id="KeyId-327383FBE9F26CE8EF12451752261752"> <wsse:SecurityTokenReference xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="STRId-327383FBE9F26CE8EF12451752261753"><ds:X509Data> <ds:X509IssuerSerial> <ds:X509IssuerName>CN=teams</ds:X509IssuerName> <ds:X509SerialNumber>1245171677</ds:X509SerialNumber> </ds:X509IssuerSerial> </ds:X509Data></wsse:SecurityTokenReference> </ds:KeyInfo> </ds:Signature></wsse:Security></soap:Header><soap:Body xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd" wsu:Id="id-2"><ns1:retrieveAllFields xmlns:ns1="http://teams.ea.com/"><username>sysadmin</username><password>4ealabels</password></ns1:retrieveAllFields></soap:Body></soap:Envelope> -------------------------------------- Jun 16, 2009 11:00:27 AM org.apache.cxf.interceptor.LoggingInInterceptor logging INFO: Inbound Message ---------------------------- ID: 1 Encoding: UTF-8 Content-Type: text/xml; charset=utf-8 Headers: {Content-Length=[225], Server=[Jetty(6.1.18)], content-type=[text/xml; charset=utf-8]} Payload: <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>No such Localname for SOAP URI</faultstring></soap:Fault></soap:Body></soap:Envelope> -------------------------------------- javax.xml.ws.soap.SOAPFaultException: No such Localname for SOAP URI at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:141) at $Proxy47.retrieveAllFields(Unknown Source) at test.ea.ws.WebServiceClient.main(WebServiceClient.java:46) Caused by: org.apache.cxf.binding.soap.SoapFault: No such Localname for SOAP URI at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.unmarshalFault(Soap11FaultInInterceptor.java:75) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:46) at org.apache.cxf.binding.soap.interceptor.Soap11FaultInInterceptor.handleMessage(Soap11FaultInInterceptor.java:35) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) at org.apache.cxf.interceptor.AbstractFaultChainInitiatorObserver.onMessage(AbstractFaultChainInitiatorObserver.java:96) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:69) at org.apache.cxf.binding.soap.interceptor.CheckFaultInterceptor.handleMessage(CheckFaultInterceptor.java:34) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) at org.apache.cxf.endpoint.ClientImpl.onMessage(ClientImpl.java:645) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:2132) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:2015) at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1940) at org.apache.cxf.io.CacheAndWriteOutputStream.postClose(CacheAndWriteOutputStream.java:47) at org.apache.cxf.io.CachedOutputStream.close(CachedOutputStream.java:180) at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:66) at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:627) at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:62) at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:236) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:471) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:301) at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:253) at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:73) at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:121) ... 2 more *************FINISHED!************* -- View this message in context: http://www.nabble.com/CXF-WS-security-Signing-not-working---%22javax.xml.ws.soap.SOAPFaultException%3A-No-such-Localname-for-SOAP-URI%22-tp24062970p24062970.html Sent from the cxf-dev mailing list archive at Nabble.com.