posted 18 years ago
I started using the WS-Security capability provided by IBM's RAD 6. I created a Web Service that uses WS-Security and XML-Signatures, this feature is provided automatically through the tool.
When I tested this web service using the web client generated by RAD it works fine. All the appropriate WS-Security headers are generated. However, when I use a stand alone class that invokes the proxy client generated by RAD, the call fails and I get an error that implies that the header does not contain a the XML-Signatures.
I was wondering if anyone ran into this before? and/or if you know of a useful tutorial for WS-Security using RAD.
Below is the stacktrace.
Thanks for your answers.
com.ibm.wsspi.wssecurity.SoapSecurityException: WSEC5720E: A required message part [body] is not signed.
at com.ibm.ws.webservices.engine.WebServicesFault.makeUserFault(WebServicesFault.java:211)
at com.ibm.ws.webservices.engine.xmlsoap.builders.WebServicesFaultProcessor.createFault(WebServicesFaultProcessor.java:396)
at com.ibm.ws.webservices.engine.xmlsoap.SOAPFault.getFault(SOAPFault.java:484)
at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:1463)
at com.ibm.ws.webservices.engine.SOAPPart.getFault(SOAPPart.java:1423)
at com.ibm.ws.webservices.engine.Message.getFault(Message.java:822)
at com.ibm.ws.webservices.engine.Message.ifFaultThrowSelf(Message.java:802)
at com.ibm.ws.webservices.engine.PivotHandlerWrapper.invoke(PivotHandlerWrapper.java:267)
at com.ibm.ws.webservices.engine.WebServicesEngine.invoke(WebServicesEngine.java:274)
at com.ibm.ws.webservices.engine.client.Connection.invokeEngine(Connection.java:727)
at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:648)
at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:609)
at com.ibm.ws.webservices.engine.client.Connection.invoke(Connection.java:446)
at com.ibm.ws.webservices.engine.client.Stub$Invoke.invoke(Stub.java:732)
at com.ami.ws.TokenServiceSoapBindingStub.getToken(TokenServiceSoapBindingStub.java:92)
at com.ami.ws.TokenServiceProxy.getToken(TokenServiceProxy.java:64)
at com.ami.ws.test.Test.main(Test.java:21)