Hi folks,

Do you see any problem in the attached code? My intension is to create an
envelope with body element containing DataHandler object. I have been
consistently getting the Null pointer exception.

My set up is like this.

1) Axis - 1.1RC2
2) mail.jar 1.3
3) activation.jar - ???

And my classpath is
"activation.jar;mailapi.jar;mail.jar;xerces_1_4_3.jar;jaxrpc.jar;saaj.jar;co
mmons-logging.jar;commons-discovery.jar;axis.jar"

Your help is much appriciated.

Regards,
Ayyappan Gandhirajan

The error description is --

Exception in thread "main" java.lang.NullPointerException
        at
org.apache.axis.encoding.ser.JAFDataHandlerSerializer.serialize(JAFDa
taHandlerSerializer.java:96)
        at
org.apache.axis.encoding.SerializationContextImpl.serializeActual(Ser
ializationContextImpl.java:1247)
        at
org.apache.axis.encoding.SerializationContextImpl.serialize(Serializa
tionContextImpl.java:787)
        at
org.apache.axis.message.MessageElement.outputImpl(MessageElement.java
:813)
        at
org.apache.axis.message.MessageElement.output(MessageElement.java:779
)
        at
org.apache.axis.message.MessageElement.outputImpl(MessageElement.java
:822)
        at
org.apache.axis.message.MessageElement.output(MessageElement.java:779
)
        at org.apache.axis.message.SOAPBody.outputImpl(SOAPBody.java:150)
        at
org.apache.axis.message.SOAPEnvelope.outputImpl(SOAPEnvelope.java:413
)
        at
org.apache.axis.message.MessageElement.output(MessageElement.java:779
)
        at
org.apache.axis.message.MessageElement.getAsString(MessageElement.jav
a:702)
        at
org.apache.axis.message.MessageElement.getAsDocument(MessageElement.j
ava:681)
        at
org.apache.axis.message.MessageElement.getAsDOM(MessageElement.java:7
10)
        at MessageTest.createEnvelope(MessageTest.java:78)
        at MessageTest.main(MessageTest.java:52)



The source code is as follows:
public class MessageTest{

    private static String SOAPSECNS =
"http://schemas.xmlsoap.org/soap/security/2000-12";;
    private static String SOAPSECprefix = "SOAP-SEC";

        //private static DataHandler dh = null;
        public static void main(String[] args) throws Exception{
                MessageTest test = new MessageTest();

                String namespace = "http://tempuri.org";;
                String methodName = "echoAttachment";

                System.out.println("File exists - "+new
File("test.txt").exists());
                DataHandler dh = new DataHandler(new
File("test.txt").toURL());
                System.out.println("File Name - "+dh.getName());

                test.createEnvelope(namespace, methodName, dh);
                System.out.println("Success");
        }

        public void createEnvelope(String namespace, String methodName,
DataHandler dh) throws Exception{
                System.out.println("Creating envelope....");
                //envelope
                SOAPEnvelope env = new SOAPEnvelope();
                env.addMapping(new Mapping(SOAPSECNS, SOAPSECprefix));
                env.addAttribute(Constants.URI_SOAP11_ENV, "actor",
"http://tempuri.org";);
                env.addAttribute(Constants.URI_SOAP11_ENV, "mustUnderstand",
"1");

                //Header
                System.out.println("Creating envelope.header....");
                SOAPHeaderElement header = new
SOAPHeaderElement(XMLUtils.StringToElement(SOAPSECNS, "Signature", ""));
                env.addHeader(header);

                //Body
                System.out.println("Creating envelope.body....");
                SOAPBodyElement sbe = new
SOAPBodyElement(env.createName(methodName, "m", namespace));
                env.addBodyElement(sbe);
                sbe.addChildElement(new MessageElement(new QName("in0"),
dh));

                System.out.println("");
                System.out.println("Printing envelope");
                System.out.println("**************ENVELOPE
STARTS**************");
                XMLUtils.PrettyElementToStream(env.getAsDOM(), System.out);

                System.out.println("**************ENVELOPE
ENDS**************");
        }
}

Reply via email to