Thanks a lot,

It is really interesting !!!!!

Also, have you see my other problem, I have a NoClassDefFoundError, but I
do not know why ?
Have you faced the same problem ?

Thanks for your help

Christophe



                                                                                       
                                       
                    "Terry Child"                                                      
                                       
                    <[EMAIL PROTECTED]>               To:     "jBoss" 
<[EMAIL PROTECTED]>                        
                    Sent by:                        cc:                                
                                       
                    <[EMAIL PROTECTED]        Subject:     Re: [jBoss-User] 
Castor / JBoss / integration examples       
                    -dogs.com>                                                         
                                       
                                                                                       
                                       
                                                                                       
                                       
                    02/01/01 12:10 PM                                                  
                                       
                    Please respond to                                                  
                                       
                    "jBoss"                                                            
                                       
                                                                                       
                                       
                                                                                       
                                       



Hi Christophe

Below is a helper class that I use to access Castor from session beans,
also my
database.xml and jboss.xml (I tried attaching these but the jboss
listserver
rejected them)

CastorHelper.java:

import org.exolab.castor.jdo.Database;
import org.exolab.castor.jdo.OQLQuery;
import org.exolab.castor.jdo.QueryResults;
import org.exolab.castor.jdo.DataObjects;

import java.util.ArrayList;
import java.util.Collection;

import javax.naming.InitialContext;

/**
 *  Uses the castor O/R mapper to persist value objects in the database.
 *
 * @author  <a href="mailto:[EMAIL PROTECTED]">Terry Child</a>
 * @version $Revision: 1.6 $ $Date: 2001/01/12 13:25:45 $
 *
*/
public class CastorHelper {

    private DataObjects _jdo;

    public CastorHelper() {

      try{
        InitialContext ic = new InitialContext();
        _jdo = (DataObjects) ic.lookup("java:comp/env/jdo/Prices1JDO");
      } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
      }
    }

    public void create(Object data){

        Database      db;

        try {
        db = _jdo.getDatabase();
        db.create(data);
        db.close();
        } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
        }
    }

    public Object findByPrimaryKey(Class c,Object key){

        Database      db;
        OQLQuery      findOql;
        QueryResults  results;
        Object data = null;

        try {
        db = _jdo.getDatabase();

        data = db.load(c,key);

        db.close();
        } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
        }

        return data;
    }

    public Object findSingleton(String query){

        Database      db;
        OQLQuery      findOql;
        QueryResults  results;
        Object data = null;

        try {
        db = _jdo.getDatabase();


        findOql = db.getOQLQuery(query);


        results=findOql.execute();
        if ( results.hasMore() ) {
            data = results.next();
        }

        db.close();
        } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
        }

        return data;
    }

    public Collection findCollection(String query){

        Database      db;
        OQLQuery      findOql;
        QueryResults  results;
        ArrayList data=new ArrayList();

        try {
        db = _jdo.getDatabase();

        findOql = db.getOQLQuery(query);

        results=findOql.execute();
        while( results.hasMore() ) {
            data.add(results.next());
        }

        db.close();
        } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
        }

        return data;
    }

    public Collection findCollection(String query,int startIndex, int
count){

        Database      db;
        OQLQuery      findOql;
        QueryResults  results;
        ArrayList data=new ArrayList();

        try {

        db = _jdo.getDatabase();

        findOql = db.getOQLQuery(query);

        results=findOql.execute();

        // skip initial rows as specified by the startIndex parameter.
        while (startIndex-- > 0 && results.hasMore()){
          results.next();
        }

        // Now get data as requested.
        while (count-- > 0 && results.hasMore()) {
          data.add(results.next());
        }

        db.close();
        } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
        }

        return data;
    }


    public void update(Object data){

        Database      db;

        try {
        db = _jdo.getDatabase();

        db.update(data);

        db.close();
        } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
        }
    }

    public void remove(Class objclass,Object identity){

        Database db;

        try {
        db = _jdo.getDatabase();

        Object temp=db.load(objclass,identity);
        db.remove(temp);

        db.close();
        } catch(Exception e){
          System.out.println(e.getMessage());
          e.printStackTrace();
        }
    }

}


jboss.xml:

<?xml version="1.0" encoding="Cp1252"?>

<jboss>
     <secure>false</secure>
     <resource-managers>

         <resource-manager res-class
="org.jboss.ejb.deployment.JDBCResource">
    <res-name>PriceDatabase</res-name>
    <res-jndi-name>Interbase</res-jndi-name>
         </resource-manager>

   <resource-manager res-class
="org.jboss.ejb.deployment.CastorJDOResource">
    <res-name>CastorPricesJDO</res-name>
    <res-jndi-name>castorprices1</res-jndi-name>
   </resource-manager>

     </resource-managers>

     <enterprise-beans>

  <session>
   <ejb-name>CompanyService</ejb-name>
   <jndi-name>CompanyService</jndi-name>
   <resource-ref>
     <res-ref-name>jdbc/PricingDataSource</res-ref-name>
     <resource-name>PriceDatabase</resource-name>
   </resource-ref>
   <resource-ref>
     <res-ref-name>jdo/Prices1JDO</res-ref-name>
     <resource-name>CastorPricesJDO</resource-name>
   </resource-ref>
  </session>

  <session>
   <ejb-name>MaterialService</ejb-name>
   <jndi-name>MaterialService</jndi-name>
   <resource-ref>
     <res-ref-name>jdbc/PricingDataSource</res-ref-name>
     <resource-name>PriceDatabase</resource-name>
   </resource-ref>
   <resource-ref>
     <res-ref-name>jdo/Prices1JDO</res-ref-name>
     <resource-name>CastorPricesJDO</resource-name>
   </resource-ref>
  </session>

  <session>
   <ejb-name>LabourService</ejb-name>
   <jndi-name>LabourService</jndi-name>
   <resource-ref>
    <res-ref-name>jdbc/PricingDataSource</res-ref-name>
    <resource-name>PriceDatabase</resource-name>
   </resource-ref>
   <resource-ref>
     <res-ref-name>jdo/Prices1JDO</res-ref-name>
     <resource-name>CastorPricesJDO</resource-name>
   </resource-ref>
  </session>

  <session>
   <ejb-name>PeopleAndOrganizationsService</ejb-name>
   <jndi-name>PeopleAndOrganizationsService</jndi-name>
   <resource-ref>
    <res-ref-name>jdbc/PricingDataSource</res-ref-name>
    <resource-name>PriceDatabase</resource-name>
   </resource-ref>
   <resource-ref>
     <res-ref-name>jdo/Prices1JDO</res-ref-name>
     <resource-name>CastorPricesJDO</resource-name>
   </resource-ref>
  </session>

     </enterprise-beans>
</jboss>


database.xml:

<database name="prices1" engine="interbase" >
   <jndi name="java:/Interbase" />
   <mapping href="../default/mapping.xml" />
</database>


I've got the following in my jboss.conf:

<MLET CODE = "org.jboss.jdo.castor.CastorJDOImpl"
      ARCHIVE="jboss.jar,castor-0.8.11.jar,xerces.jar"
      CODEBASE="../lib/ext/">
   <ARG TYPE="java.lang.String" VALUE="file:../conf/default/database.xml">
   <ARG TYPE="java.lang.String" VALUE="castorprices1">
   <ARG TYPE="java.lang.Integer" VALUE="10000">
   <ARG TYPE="java.lang.Boolean" VALUE="true">
   <ARG TYPE="java.lang.Boolean" VALUE="false">
</MLET>

and the following in jboss.jcml

  <mbean code="org.jboss.jdbc.XADataSourceLoader"
name="DefaultDomain:service=XADataSource,name=Interbase">
    <attribute name="PoolName">Interbase</attribute>
    <attribute
name="DataSourceClass">org.jboss.minerva.xa.XADataSourceImpl</attribute>
    <attribute name="Properties"></attribute>
    <attribute
name="URL">jdbc:interbase://localhost/C:/interdbs/prices1.gdb</attribute>
    <attribute name="GCMinIdleTime">1200000</attribute>
    <attribute name="JDBCUser">ME</attribute>
    <attribute name="MaxSize">10</attribute>
    <attribute name="Password">letmein</attribute>
    <attribute name="GCEnabled">false</attribute>
    <attribute name="InvalidateOnError">false</attribute>
    <attribute name="TimestampUsed">false</attribute>
    <attribute name="Blocking">true</attribute>
    <attribute name="GCInterval">120000</attribute>
    <attribute name="IdleTimeout">1800000</attribute>
    <attribute name="IdleTimeoutEnabled">false</attribute>
    <attribute name="LoggingEnabled">false</attribute>
    <attribute name="MaxIdleTimeoutPercent">1.0</attribute>
    <attribute name="MinSize">0</attribute>
  </mbean>


Hope this is of some help.

Regards

Terry Child




----- Original Message -----
From: <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Cc: <[EMAIL PROTECTED]>
Sent: Wednesday, January 31, 2001 9:25 AM
Subject: [jBoss-User] Castor / JBoss / integration examples


> I m searching for an example of Castor / JBoss integration example.
>
> I simply want to access my JDO database through my container, but I m
> unable,
> maybe due to bad settings.
>
> So, I m searching for an example of J2EE JDO use.
>
> Thanks
>
> Christophe
>
>
>
> --
> --------------------------------------------------------------
> To subscribe:        [EMAIL PROTECTED]
> To unsubscribe:      [EMAIL PROTECTED]
> List Help?:          [EMAIL PROTECTED]
>



--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]






--
--------------------------------------------------------------
To subscribe:        [EMAIL PROTECTED]
To unsubscribe:      [EMAIL PROTECTED]
List Help?:          [EMAIL PROTECTED]

Reply via email to