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]