logo       
Google Custom Search
    AddThis Social Bookmark Button

Problem in creating envelope with DataHandler object: msg#00023

Subject: Problem in creating envelope with DataHandler object
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**************");
        }
}





Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>