Ted, We are past this point now :) Please take a look.
- You will need to use latest code from CVS for jakarta-log4j, xml-security and xml-axis. - updated build scripts to automatically run the signing and verification steps if the security classes are present. - We still have the relative namespace problem with AdminService. - There are some exceptions in TestTCPTransportSample sample. Thanks, dims --- "Theodore W. Leung" <[EMAIL PROTECTED]> wrote: > Hi, > > I've back to working on transparent digital signature of the functional > tests. I've run into a problem that I don't know how to solve: > Sometime the client-side signer samples.security.ClientSigningHandler > works just fine -- most notably when used with > org.apache.axis.client.AdminClient. I can deploy all the services that > I want and the deployment requests all get signed just fine. When I > actually try to run a deployed test, I get: > > > Beginning Client signing... > java.io.IOException: No serializer found for class java.lang.String in > registry org.apache.axis.encoding.SerializationContextImpl@5c62d539 > at > org.apache.axis.encoding.SerializationContextImpl.serializeActual(SerializationContextImpl.java:864) > at > >org.apache.axis.encoding.SerializationContextImpl.serialize(SerializationContextImpl.java:526) > at org.apache.axis.message.RPCParam.serialize(RPCParam.java:133) > at org.apache.axis.message.RPCElement.outputImpl(RPCElement.java:198) > at > org.apache.axis.message.MessageElement.output(MessageElement.java:481) > at > org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:439) > at > org.apache.axis.message.MessageElement.output(MessageElement.java:481) > at > org.apache.axis.message.MessageElement.getAsDocument(MessageElement.java:423) > at > samples.security.SignedSOAPEnvelope.init(SignedSOAPEnvelope.java:118) > at > samples.security.SignedSOAPEnvelope.<init>(SignedSOAPEnvelope.java:101) > at > samples.security.ClientSigningHandler.invoke(ClientSigningHandler.java:99) > at > org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) > at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:151) > at org.apache.axis.SimpleChain.invoke(SimpleChain.java:118) > at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) > at org.apache.axis.client.Call.invoke(Call.java:1510) > at org.apache.axis.client.Call.invoke(Call.java:1327) > at org.apache.axis.client.Call.invoke(Call.java:1257) > at org.apache.axis.client.Call.invoke(Call.java:854) > at samples.stock.GetQuote.getQuote(GetQuote.java:124) > at samples.stock.GetQuote.main(GetQuote.java:138) > AxisFault > faultCode: http://xml.apache.org/axis/:Server.userException > faultString: java.lang.RuntimeException: java.io.IOException: No > serializer found for class java.lang.String in registry > org.apache.axis.encoding.SerializationContextImpl@5c62d539 > faultActor: null > faultDetail: > stackTrace: java.lang.RuntimeException: java.io.IOException: No > serializer found for class java.lang.String in registry > org.apache.axis.encoding.SerializationContextImpl@5c62d539 > at > samples.security.SignedSOAPEnvelope.init(SignedSOAPEnvelope.java:161) > at > samples.security.SignedSOAPEnvelope.<init>(SignedSOAPEnvelope.java:101) > at > samples.security.ClientSigningHandler.invoke(ClientSigningHandler.java:99) > at > org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) > at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:151) > at org.apache.axis.SimpleChain.invoke(SimpleChain.java:118) > at org.apache.axis.client.AxisClient.invoke(AxisClient.java:165) > at org.apache.axis.client.Call.invoke(Call.java:1510) > at org.apache.axis.client.Call.invoke(Call.java:1327) > at org.apache.axis.client.Call.invoke(Call.java:1257) > at org.apache.axis.client.Call.invoke(Call.java:854) > at samples.stock.GetQuote.getQuote(GetQuote.java:124) > > at samples.stock.GetQuote.main(GetQuote.java:138) > > > The client handler works by getting the request message out of the > MessageContext that is passed to the handler's invoke method. It then > calls getSOAPEnvelope() to get an Envelope that can be signed. Signing > happens by creating a SignedSOAPEnvelope from the unsigned envelope. In > order to sign the envelope, I need to get it as a DOM tree. Calling > getAsDocument on the unsigned envelope is what causes the blowup. > > It appears that the SerializationContextImpl that is being created is > being created with no mappings. I'm not familiar enough (yet) with the > code to figure out where the mappings should be getting created in this > case. > > Any pointers would be greatly appreciated. > > > On a related note: A number of the tests us relative URIs for namespace > values in the .wsdl files. This turns into pain under XML Signature > because we have to canonicalize the message. It would save a lot of > hassle if we stopped using these relative URIs. > > Ted > > ===== Davanum Srinivas - http://jguru.com/dims/ __________________________________________________ Do You Yahoo!? Send FREE Valentine eCards with Yahoo! Greetings! http://greetings.yahoo.com