axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Cristian Opincaru" <>
Subject org.w3c.Documnet <-> SOAPEnvelope
Date Fri, 09 Jun 2006 09:14:04 GMT

I want to use WSS4J to do some encryption / decryption with SOAP and for
this I have to convert the SOPA message in DOM (the WSS4J API does all
processing with Document objects). After using the WSS4J routines, I must
convert the message from Document back to SOAPEnvelope, and this is where my
problems start.

I googled a bit, and ended up with two ways of doing this. This one is:

public static SOAPMessage toSOAPMessage(Document doc) throws Exception {
        Canonicalizer c14n =
        byte[] canonicalMessage = c14n.canonicalizeSubtree(doc);
        ByteArrayInputStream in = new
        factory = org.apache.axis.soap.MessageFactoryImpl.newInstance();
        return (SOAPMessage) factory.createMessage(null, in);
This is where the AXIS classes are used (I guess).

The second one is:

   public static SOAPMessage toSOAPMessage(Document doc) throws Exception {
        MessageFactory factory = MessageFactory.newInstance();
        SOAPMessage m = (SOAPMessage) factory.createMessage();
        m.getSOAPPart().setContent(new DOMSource(doc));
        return m;

This is where the SUN implementetion is used (aganin, not really sure).

Anyway, both seem to work in some cases, while in others I get some wierd
SAX Exceptions (like documents must start and end with the same entity).

Since I assume this is a pretty standard thingm, can anyone indicate me
how's the right way to do it? Also I think there might be a problem because
of the libraries that I'm using (perhaps I'm using the wrong versions / or
simply mixing SOAP implementations). Can anyone tell me what libraries (and
versions) I should use in order to avoid problems?


University of the Federal Armed Forces Munich

View raw message