Thanks....  All is well in the marshalling world now!

Question:  If I then want to UNmarshall this resultant XML instance, do I
need a mapping file, and if so, what should it look like to account for the
root class of array, yet still have a class entry for the WorkRequest class?

Thanks again!

> -----Original Message-----
> From: Keith Visco [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, April 23, 2002 2:28 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [castor-dev] How do I marshall a collection of my class
> objects?
>
>
>
> Hi Mark,
>
> This is now fixed in the CVS. The problem was using an array as the root
> class. I should have seen this right away when looking at your test
> case. Using an array as the root class was unsupported...but I went
> ahead and added some code for it.
>
> One thing I noticed in your test case...you are creating a new
> marshaller and setting some properties...however these properties will
> be ignored since you then use the static marshal method that doesn't
> have access to the properties that you changed.
>
> Simply change the line:
>
> mm.marshal(to, writer)
>
> to:
>
> mm.marshal(to);
>
>
> --Keith
>
> Keith Visco wrote:
> >
> > It's line 837 for me...I did a CVS update directly before I sent you the
> > mail, so I don't think you are using the CVS version of that file.
> >
> > In anycase...I'll take a look into it because I do get an NPE at line
> > 837 when running your test case.
> >
> > --Keith
> >
> > "Mark A. Sellers" wrote:
> > >
> > > In my editor, the Marshaller.java class (which I downloaded
> from the CVS
> > > link) line 672 is:
> > >
> > > name = classDesc.getXMLName();
> > >
> > > ??????????
> > >
> > > > -----Original Message-----
> > > > From: Keith Visco [mailto:[EMAIL PROTECTED]]
> > > > Sent: Tuesday, April 23, 2002 12:22 PM
> > > > To: [EMAIL PROTECTED]
> > > > Subject: Re: [castor-dev] How do I marshall a collection of my class
> > > > objects?
> > > >
> > > >
> > > >
> > > > Hi Mark,
> > > >
> > > > I'll take a look into it. However, your stacktrace cannot
> come from the
> > > > CVS version of Castor...line 672 of Marshaller in the CVS cannot
> > > > possibly throw an exception:
> > > >
> > > > 672:      if (object == null)
> > > >
> > > > In any case, I'll try out your example and see what I get.
> > > >
> > > > Thanks,
> > > >
> > > > --Keith
> > > >
> > > > "Mark A. Sellers" wrote:
> > > > >
> > > > > I tried using the CVS version and still get an NPE exception.
> > > > Here's what
> > > > > I'm doing:
> > > > >
> > > > > package rm.castor;
> > > > >
> > > > > import java.util.Date;
> > > > > import java.util.*;
> > > > > import java.sql.Timestamp;
> > > > > import java.awt.*;
> > > > > import java.awt.event.*;
> > > > > import java.io.*;
> > > > > import org.exolab.castor.xml.*;
> > > > > import TestObject;
> > > > > import org.xml.sax.ContentHandler;
> > > > > import org.apache.xml.serialize.*;
> > > > >
> > > > > class Castor extends Frame {
> > > > >
> > > > >         public Castor() {
> > > > >                 addWindowListener(new WindowAdapter() {
> > > > >                         public void windowClosing(WindowEvent e) {
> > > > >                                 dispose();
> > > > >                                 System.exit(0);
> > > > >                         }
> > > > >                 });
> > > > >         }
> > > > >
> > > > >         public static void main(String args[]) {
> > > > >                 System.out.println("Starting Castor...");
> > > > >                 Castor mainFrame = new Castor();
> > > > >                 mainFrame.setSize(400, 400);
> > > > >                 mainFrame.setTitle("Castor");
> > > > >                 mainFrame.setVisible(true);
> > > > >
> > > > >     TestObject[] to = new TestObject[2];
> > > > >     to[0] = new TestObject();
> > > > >     to[0].setDateOfBirth(new java.util.Date("10/1/2001"));
> > > > >     to[0].setName("Mark");
> > > > >     to[1] = new TestObject();
> > > > >     to[1].setDateOfBirth(new java.util.Date("12/21/1956"));
> > > > >     to[1].setName("Sandy");
> > > > >
> > > > >   try {
> > > > >         FileWriter writer = new FileWriter("C:\\Castor\\cc.xml");
> > > > >         Marshaller mm = new Marshaller(writer);
> > > > >       mm.setNamespaceMapping("-//EXOLAB/Castor Object Mapping
> > > > Schema Version
> > > > > 1.0//EN","http://castor.exolab.org/mapping.xsd";);
> > > > >       mm.setMarshalAsDocument(true);
> > > > >         mm.setValidation(false);
> > > > >         mm.setNSPrefixAtRoot(true);
> > > > >
> > > > >         mm.marshal(to, writer);
> > > > >
> > > > >         System.err.println("finished marshalling...");
> > > > >
> > > > >    } catch (java.io.IOException ioe) {
> > > > >        System.err.println(ioe.toString());
> > > > >    } catch ( org.exolab.castor.xml.MarshalException me ) {
> > > > >         System.err.println(me.toString());
> > > > >    } catch ( org.exolab.castor.xml.ValidationException ve ) {
> > > > >         System.err.println(ve.toString());
> > > > >    }
> > > > >   }
> > > > > }
> > > > >
> > > > > Class TestObject:
> > > > >
> > > > > import java.util.Date;
> > > > > public class TestObject implements java.io.Serializable {
> > > > >    private String name = null;
> > > > >    private Date dob = null;
> > > > >
> > > > >    public TestObject() {
> > > > >       super();
> > > > >    }
> > > > >
> > > > >    public TestObject(String name) {
> > > > >       this.name  = name;
> > > > >    }
> > > > >
> > > > >    public Date getDateOfBirth() {
> > > > >       return dob;
> > > > >    }
> > > > >
> > > > >    public String getName() {
> > > > >       return name;
> > > > >    }
> > > > >
> > > > >    public void setDateOfBirth(Date dob) {
> > > > >       this.dob = dob;
> > > > >    }
> > > > >
> > > > >    public void setName(String name) {
> > > > >       this.name = name;
> > > > >    }
> > > > > }
> > > > >
> > > > > Exception in thread "main" java.lang.NullPointerException
> > > > >         at
> org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:672)
> > > > >         at
> org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:540)
> > > > >         at
> org.exolab.castor.xml.Marshaller.marshal(Marshaller.java:460)
> > > > >         at rm.castor.Castor.main(Castor.java:160)
> > > > >
> > > > > Thanks, Mark Sellers
> > > > >
> > > > > -----------------------------------------------------------
> > > > > If you wish to unsubscribe from this mailing, send mail to
> > > > > [EMAIL PROTECTED] with a subject of:
> > > > >         unsubscribe castor-dev
> > > >
> > > > -----------------------------------------------------------
> > > > If you wish to unsubscribe from this mailing, send mail to
> > > > [EMAIL PROTECTED] with a subject of:
> > > >       unsubscribe castor-dev
> > > >
> > >
> > > -----------------------------------------------------------
> > > If you wish to unsubscribe from this mailing, send mail to
> > > [EMAIL PROTECTED] with a subject of:
> > >         unsubscribe castor-dev
> >
> > -----------------------------------------------------------
> > If you wish to unsubscribe from this mailing, send mail to
> > [EMAIL PROTECTED] with a subject of:
> >         unsubscribe castor-dev
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>       unsubscribe castor-dev
>

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to