I'm using the castor-0.9.3.9.jar file.
I'll try downloading the CVS version and building it and try that....
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 rm.ejb.database.WorkRequest;
import org.xml.sax.ContentHandler;
import org.apache.xml.serialize.*;
import org.exolab.castor.mapping.Mapping;
import org.exolab.castor.mapping.MappingException;
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);
WorkRequest[] wrs = new WorkRequest[3];
try {
wrs[0] = new WorkRequest();
wrs[0].setSrcNm("ETMS");
wrs[0].setAdrCityNm("Colorado Springs");
wrs[0].setAdrCountyNm("El Paso");
wrs[0].setAdrDirections("Turn Left at Rte. 83");
wrs[0].setAdrPostalCd("80919");
wrs[0].setAdrStateCd("CO");
wrs[0].setAdrStreet1("1900 Longview Rd.");
wrs[0].setDispatcherNm("TOMMY");
//wrs[0].setDispatchRequired(false);
wrs[0].setDispatchRequiredFlg("N");
wrs[0].setId(Long.parseLong("999999912312321"));
wrs[0].setInterfaceCreatedFlg("N");
wrs[0].setLstUpdDt(new Timestamp(System.currentTimeMillis()));
wrs[0].setSrcActDueDt("10/2/2002 08:00 AM"); // mm/dd/yy hh:mm tt"
wrs[0].setSrcOrdDueDt("10/1/2002 09:00 AM");
wrs[0].setLastUpdateEmpDt(new Timestamp(System.currentTimeMillis()));
wrs[0].setLastUpdateEmpId("MSELLERS");
wrs[0].setLocCdCsite("CSITE");
wrs[0].setRmActNm("E2E");
wrs[0].setRmPriorityCd("1");
wrs[0].setRmSiteCd("X12345");
wrs[0].setSrcActCd("E2E");
wrs[0].setSrcCustNm("Toys R Us");
wrs[0].setStatusNm("Received");
wrs[0].setStatusReasonNm("REDIRECTED");
wrs[1] = new WorkRequest();
wrs[1].setSrcNm("TCOMS");
wrs[1].setAdrCityNm("Denver");
wrs[1].setAdrCountyNm("Littletone");
wrs[1].setAdrDirections("Tech Center");
wrs[1].setAdrPostalCd("80900");
wrs[1].setAdrStateCd("CO");
wrs[1].setAdrStreet1("One Marriott Plaza");
wrs[1].setDispatcherNm("SUSIE");
//wrs[1].setDispatchRequired(false);
wrs[1].setDispatchRequiredFlg("Y");
wrs[1].setId(Long.parseLong("200212312321"));
wrs[1].setInterfaceCreatedFlg("Y");
wrs[1].setLstUpdDt(new Timestamp(System.currentTimeMillis()));
wrs[1].setSrcActDueDt("11/2/2002 08:00 AM"); // mm/dd/yy hh:mm tt"
wrs[1].setSrcOrdDueDt("11/1/2002 09:00 AM");
wrs[1].setLastUpdateEmpDt(new Timestamp(System.currentTimeMillis()));
wrs[1].setLastUpdateEmpId("DROEDA");
wrs[1].setLocCdCsite("cssxx");
wrs[1].setRmActNm("FIN");
wrs[1].setRmPriorityCd("1");
wrs[1].setRmSiteCd("FOG.LUE");
wrs[1].setSrcActCd("FIN");
wrs[1].setSrcCustNm("MicroWarehouse");
wrs[1].setStatusNm("Sent");
wrs[1].setStatusReasonNm("CANCELED");
wrs[2] = new WorkRequest();
wrs[2].setSrcNm("FANDE");
wrs[2].setAdrCityNm("Longmount");
wrs[2].setAdrCountyNm("Teller");
wrs[2].setAdrDirections("Just down past Joe's house");
wrs[2].setAdrPostalCd("80800");
wrs[2].setAdrStateCd("CO");
wrs[2].setAdrStreet1("1715 Lazy Lane");
wrs[2].setDispatcherNm("JRODE");
//wrs[2].setDispatchRequired(false);
wrs[2].setDispatchRequiredFlg("Y");
wrs[2].setId(Long.parseLong("200210000320"));
wrs[2].setInterfaceCreatedFlg("Y");
wrs[2].setLstUpdDt(new Timestamp(System.currentTimeMillis()));
wrs[2].setSrcActDueDt("12/2/2002 08:00 AM"); // mm/dd/yy hh:mm tt"
wrs[2].setSrcOrdDueDt("12/1/2002 09:00 AM");
wrs[2].setLastUpdateEmpDt(new Timestamp(System.currentTimeMillis()));
wrs[2].setLastUpdateEmpId("SCBECKER");
wrs[2].setLocCdCsite("BCANF");
wrs[2].setRmActNm("CPP");
wrs[2].setRmPriorityCd("3");
wrs[2].setRmSiteCd("XXX.JER");
wrs[2].setSrcActCd("CPP");
wrs[2].setSrcCustNm("Mack Trucks");
wrs[2].setStatusNm("Acknowldgd");
wrs[2].setStatusReasonNm("");
} catch (Exception e) {
System.err.println("Exception setting WorkRequest methods: " +
e.toString());
}
//LoginData cc = new LoginData();
//cc.setUserid("MSELLERS");
//cc.setPassword("PassWord7132");
//cc.setDateOfBirth(new Date());
///*
Mapping mapping = new Mapping();
try {
mapping.loadMapping( "C:\\Castor\\workrequest_map.xml" );
} catch (Exception me ) {
System.err.println("Error loading mapper");
}
//*/
try {
FileWriter writer = new FileWriter("C:\\Castor\\cc.xml");
Marshaller mm = new Marshaller(writer);
//mm.setMapping( mapping );
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(wrs, 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());
} //catch ( org.exolab.castor.mapping.MappingException mpe ) {
// System.err.println(mpe.toString());
//}
}
}
Here's the Exception:
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
> -----Original Message-----
> From: Keith Visco [mailto:[EMAIL PROTECTED]]
> Sent: Monday, April 22, 2002 3:09 PM
> To: [EMAIL PROTECTED]
> Subject: Re: [castor-dev] How do I marshall a collection of my class
> objects?
>
>
>
> Hi Mark.
>
> Which version of Castor are you using?
>
> The CVS version works fine for me with respect to collections.
>
> If you are using the CVS version, and you are still having problems,
> please send an "as-short-as-possible" example that reproduces the issue
> so that I can take a look into it.
>
> Thanks,
>
> --Keith
>
> "Mark A. Sellers" wrote:
> >
> > I'm able to marshall one instance of my own class object
> (WorkRequest), but
> > if I've got a collection of them (WorkRequest[]), how do I marshall the
> > whole collection in order to produce ONE XML file which contains all the
> > data from all the classes?
> >
> > I tried just marshalling the collection object, but it throws a
> > NullPOinterException...
> >
> > Mark A. Sellers
> > Worldcom, Inc.
> > Resource Manager Development
> > Dept/Loc:1780/117
> > http://www.worldcom.com
> >
> > -----------------------------------------------------------
> > 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