Hi Philip,

if you try to use CVS version of castor you have to change your database.xml as follows:


<?xml version="1.0" ?>
<!DOCTYPE databases PUBLIC "-//EXOLAB/Castor JDO Configuration DTD Version 1.0//EN"
"http://castor.exolab.org/jdo-conf.dtd";>


<jdo-conf>
   <database name="aip9" engine="oracle" >
       <driver url="jdbc:oracle:thin:@142.3.26.15:1526:AIP"
                    class-name="oracle.jdbc.driver.OracleDriver">
           <param name="user" value="aiptest"/>
           <param name="password" value="aiptest"/>
       </driver>
       <mapping href="etc/mapping.xml" />
   </database>
   <transaction-demarcation mode="local" />
</jdo-conf>

Regards
Ralf


----- Original Message ----- From: "Philip DONAGHY" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Thursday, September 30, 2004 3:23 PM
Subject: [castor-dev] Unable to find FieldDescriptor for 'driver' in ClassDescriptor of




Hi all,

I just updated my castor jar using the daily snapshot source and I got
this error. I am migrating from 0.9.5.3. I am using j2sdk1.4.2_04. Below
is the stack trace, the database.xml, the mapping.xml, and even the
source code that all works with 0.9.5.3.

unable to find FieldDescriptor for 'driver' in ClassDescriptor of
jdo-conf
org.xml.sax.SAXException: unable to find FieldDescriptor for 'driver' in
ClassDescriptor of jdo-conf
       at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1802)
       at
org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1302)
       at
org.apache.xerces.parsers.SAXParser.startElement(SAXParser.java:1376)
       at
org.apache.xerces.validators.common.XMLValidator.callStartElement(XMLValidator.java:1197)
       at
org.apache.xerces.framework.XMLDocumentScanner.scanElement(XMLDocumentScanner.java:1862)
       at
org.apache.xerces.framework.XMLDocumentScanner$ContentDispatcher.dispatch(XMLDocumentScanner.java:1238)
       at
org.apache.xerces.framework.XMLDocumentScanner.parseSome(XMLDocumentScanner.java:381)
       at
org.apache.xerces.framework.XMLParser.parse(XMLParser.java:1035)
       at
org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:608)
       at
org.exolab.castor.jdo.engine.JDOConfLoader.loadConfiguration(JDOConfLoader.java:95)
       at
org.exolab.castor.jdo.engine.JDOConfLoader.getDatabase(JDOConfLoader.java:134)
       at
org.exolab.castor.jdo.engine.DatabaseRegistry.loadDatabase(DatabaseRegistry.java:235)
       at org.exolab.castor.jdo.JDO.getDatabase(JDO.java:584)
       at test.finaixm.oql.LoadRte.process(LoadRte.java:26)
       at test.finaixm.oql.LoadRte.main(LoadRte.java:60)

I checked out the jdo-conf.xsd and the mapping.xsd files but I don't see
any anomaly.

<!DOCTYPE databases PUBLIC "-//EXOLAB/Castor JDO Configuration DTD
Version 1.0//EN"
                          "http://castor.exolab.org/jdo-conf.dtd";>

<database name="aip9" engine="oracle">
   <!-- Findev -->
   <driver class-name="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@142.3.26.15:1526:AIP">
       <param name="user" value="aiptest" />
       <param name="password" value="aiptest" />
   </driver>
   <mapping href="etc/mapping.xml" />
</database>

Mapping is XSLT generated so sorry for the formatting.

<?xml version="1.0" encoding="UTF-8"?>
<mapping>
<key-generator alias="SEQ" name="SEQUENCE">
<param value="seq_id" name="sequence"/>
</key-generator>


<class identity="addrId " name="db.finaixm.Address" key-generator="SEQ"> <cache-type type="none"/> <map-to table="AIPTEST.ADDRESS"/> <field name="addmAddrMId" type="long"> <sql name="ADDM_ADDR_M_ID"/> </field> <field name="addrId" type="long"> <sql name="ADDR_ID"/> </field> <field name="codeTarget" type="string"> <sql name="CODE_TARGET"/> </field> <field name="codeType" type="string"> <sql name="CODE_TYPE"/> </field> <field name="dateCancelled" type="timestamp"> <sql name="DATE_CANCELLED"/> </field> <field name="dateEnd" type="timestamp"> <sql name="DATE_END"/> </field> <field name="dateStart" type="timestamp"> <sql name="DATE_START"/> </field> <field name="owner" type="string"> <sql name="OWNER"/> </field> <field name="txtAddress" type="string"> <sql name="TXT_ADDRESS"/> </field> <field name="txtRmk" type="string"> <sql name="TXT_RMK"/> </field>

</class>

..

<class identity="vid " name="db.finaixm.VorTimesheet"
key-generator="SEQ">
<cache-type type="none"/>
<map-to table="AIPTEST.VOR_TIMESHEET"/>
 <field name="codeCombTil" type="string">
<sql name="CODE_COMB_TIL"/>
</field>
 <field name="codeCombWef" type="string">
<sql name="CODE_COMB_WEF"/>
</field>
 <field name="codeDay" type="string">
<sql name="CODE_DAY"/>
</field>
 <field name="codeDayTil" type="string">
<sql name="CODE_DAY_TIL"/>
</field>
 <field name="codeEventTil" type="string">
<sql name="CODE_EVENT_TIL"/>
</field>
 <field name="codeEventWef" type="string">
<sql name="CODE_EVENT_WEF"/>
</field>
 <field name="codeTimeRef" type="string">
<sql name="CODE_TIME_REF"/>
</field>
 <field name="codeType" type="string">
<sql name="CODE_TYPE"/>
</field>
 <field name="dateValidTil" type="string">
<sql name="DATE_VALID_TIL"/>
</field>
 <field name="dateValidWef" type="string">
<sql name="DATE_VALID_WEF"/>
</field>
 <field name="timeRelEventTil" type="long">
<sql name="TIME_REL_EVENT_TIL"/>
</field>
 <field name="timeRelEventWef" type="long">
<sql name="TIME_REL_EVENT_WEF"/>
</field>
 <field name="timeTil" type="timestamp">
<sql name="TIME_TIL"/>
</field>
 <field name="timeWef" type="timestamp">
<sql name="TIME_WEF"/>
</field>
 <field name="vid" type="long">
<sql name="VID"/>
</field>
 <field name="vorVerId" type="long">
<sql name="VOR_VER_ID"/>
</field>



</class>

</mapping>

And the code that is getting executed :

public void process() throws Exception {
       // Obtain all Rte objects from the database
       JDO jdo = new JDO();
       jdo.setDatabaseName("aip9");
       jdo.setConfiguration("etc/database-findev.xml");
   jdo.setClassLoader(getClass().getClassLoader());
       Database database = jdo.getDatabase();
       database.begin();
       Query queryRte = database
                       .getOQLQuery("SELECT v FROM db.finaixm.Rte v
WHERE verId=$");
       queryRte.bind(new Long(1));
       QueryResults queryResultsRte = queryRte.execute();
       TreeBidiMap RteUidMap = new TreeBidiMap();
       while (queryResultsRte.hasMore()) {
               db.finaixm.Rte element = (db.finaixm.Rte)
queryResultsRte
                               .nextElement();
               // Insert them as RteUid objects
               RteUid RteUid = new RteUid(
                               element);
               RteUidMap.put(RteUid, element.getRtemCodeRteId());
       }
       System.out.println("size : " + RteUidMap.size());
       queryResultsRte.close();
       queryRte.close();
       database.commit();
       database.close();
}

Thanks for any help,
Phil



----------------------------------------------------------- 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