Hi Oleg,

here are some code snippets from my bean:

    private Database getDatabase() throws PersistenceException,
NamingException {
        InitialContext ic = new InitialContext();
        DataObjects jdo = (DataObjects) ic.lookup("java:comp/env/jdo/castor");
        System.out.println("[IMOST] getDatabase current: " +
Thread.currentThread().getContextClassLoader());
        Database db = jdo.getDatabase();
        System.out.println("[IMOST] Database: " + db.getClassLoader());
        return db;
    }

    public Collection ejbFindAll() {
        ArrayList result = new ArrayList();
        try {
                Database db = this.getDatabase();
                Query oql = db.getOQLQuery("SELECT o FROM de.imost.user.ejb.UserDO
o");
                QueryResults qr = oql.execute();
                while(qr.hasMore()) {
                        UserDO d = (UserDO) qr.next();
                        result.add(d.getLogin());
                }
                db.close();
        } catch(Exception e) {
                e.printStackTrace();
                throw new EJBException(e);
        }
        return result;
    }


    public void ejbLoad() {
                try {
                        login = (String) ctx.getPrimaryKey();
                        Database db = this.getDatabase();
                        data = (UserDO) db.load(UserDO.class, login);
                        db.close();
                } catch(Exception e) {
                        e.printStackTrace();
                        throw new EJBException(e);
        }
        modified = false;
    }

The debug messages are printed in getDatabase(). Some other messages
(UserDO and UserRightDO) are printed in the constructors of the
corresponding data objects.

Ralf

Oleg Nitz wrote:
> 
> Hi Ralf,
> 
> I guess, there is something wrong with classloaders.
> What the debug messages
> > [User] [IMOST] getDatabase current: java.net.URLClassLoader@334126
> > [User] [IMOST] Database: java.net.URLClassLoader@334126
> mean? I'd appreciate a code snippet from your bean, where you get
> a Database instance.
> Do you get it from DataObjects instance, which in turn is got from
> JNDI context? If not, please read docs for Castor/JBoss module.
> 
> Oleg
> 
> Ralf Purnhagen wrote:
> > Hello,
> 
> > i am using castor for BMP in JBoss. When loading an object with
> > dependent objects, i get the following exception:
> 
> > [User] findAll()
> > [User] [IMOST] getDatabase current: java.net.URLClassLoader@334126
> > [User] [IMOST] Database: java.net.URLClassLoader@334126
> > [CastorJDO] SELECT
> > 
>S3_User.login,S3_User.password,S3_User.firstname,S3_User.lastname,S3_User.email,S3_User_Right.id
> > FROM S3_User LEFT OUTER JOIN S3_User_Right ON
> > S3_User.login=S3_User_Right.login
> > [User] [IMOST] UserDO: java.net.URLClassLoader@334126
> > [User] [IMOST] UserRightDO: java.net.URLClassLoader@334126
> > [CastorJDO] Loading de.imost.user.ejb.UserRightDO (1)
> > [User] java.lang.RuntimeException: No add method defined for this field
> > [User]  at
> > org.exolab.castor.persist.FieldMolder.addValue(FieldMolder.java:259)
> > [User]  at
> > org.exolab.castor.persist.CollectionProxy$ColProxy.add(ClassMolder.java:2693)
> > [User]  at
> > org.exolab.castor.persist.ClassMolder.load(ClassMolder.java:717)
> > [User]  at
> > org.exolab.castor.persist.LockEngine.load(LockEngine.java:355)
> > [User]  at
> > org.exolab.castor.persist.TransactionContext.load(TransactionContext.java:491)
> > [User]  at
> > org.exolab.castor.persist.QueryResults.fetch(QueryResults.java:219)
> > [User]  at
> > 
>org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:569)
> > [User]  at
> > 
>org.exolab.castor.jdo.engine.OQLQueryImpl$OQLEnumeration.hasMore(OQLQueryImpl.java:552)
> > [User]  at de.imost.user.ejb.UserBean.ejbFindAll(UserBean.java:130)
> > [User]  at java.lang.reflect.Method.invoke(Native Method)
> > [User]  at
> > 
>org.jboss.ejb.plugins.BMPPersistenceManager.callFinderMethod(BMPPersistenceManager.java:458)
> > [User]  at
> > 
>org.jboss.ejb.plugins.BMPPersistenceManager.findEntities(BMPPersistenceManager.java:221)
> > [User]  at org.jboss.ejb.EntityContainer.find(EntityContainer.java:392)
> > [User]  at java.lang.reflect.Method.invoke(Native Method)
> > [User]  at
> > 
>org.jboss.ejb.EntityContainer$ContainerInterceptor.invokeHome(EntityContainer.java:639)
> > [User]  at
> > 
>org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invokeHome(EntitySynchronizationInterceptor.java:160)
> > [User]  at
> > 
>org.jboss.ejb.plugins.EntityInstanceInterceptor.invokeHome(EntityInstanceInterceptor.java:87)
> > [User]  at
> > org.jboss.ejb.plugins.TxInterceptorCMT.invokeNext(TxInterceptorCMT.java:135)
> > [User]  at
> > 
>org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:263)
> > [User]  at
> > org.jboss.ejb.plugins.TxInterceptorCMT.invokeHome(TxInterceptorCMT.java:86)
> > [User]  at
> > org.jboss.ejb.plugins.SecurityInterceptor.invokeHome(SecurityInterceptor.java:151)
> > [User]  at
> > org.jboss.ejb.plugins.LogInterceptor.invokeHome(LogInterceptor.java:106)
> > [User]  at
> > org.jboss.ejb.EntityContainer.invokeHome(EntityContainer.java:316)
> > [User]  at
> > 
>org.jboss.ejb.plugins.jrmp.server.JRMPContainerInvoker.invokeHome(JRMPContainerInvoker.java:425)
> > [User]  at
> > org.jboss.ejb.plugins.jrmp.interfaces.HomeProxy.invoke(HomeProxy.java:212)
> > [User]  at $Proxy7.findAll(Unknown Source)
> > [User]  at de.imost.user.action.ListUsers.execute(ListUsers.java:61)
> > [User]  at webwork.taglib.BeanTag$1.getValue(BeanTag.java:229)
> > [User]  at webwork.util.ValueStack.findIterator(ValueStack.java:370)
> > [User]  at webwork.taglib.IteratorTag.doStartTag(IteratorTag.java:57)
> > [User]  at
> > 
>base.user._0002fbase_0002fuser_0002feditUser_0002ejspeditUser_jsp_99._jspService(_0002fbase_0002fuser_0002feditUser_0002ejspeditUser_jsp_99.java:124)
> > [User]  at
> > org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:119)
> > [User]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > [User]  at
> > org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:177)
> > [User]  at
> > org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:318)
> > [User]  at
> > org.apache.jasper.servlet.JspServlet.service(JspServlet.java:391)
> > [User]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > [User]  at
> > org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
> > [User]  at org.apache.tomcat.core.Handler.service(Handler.java:286)
> > [User]  at
> > org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
> > [User]  at
> > 
>org.apache.tomcat.facade.RequestDispatcherImpl.forward(RequestDispatcherImpl.java:194)
> > [User]  at webwork.servlets.Dispatcher.service(Dispatcher.java:525)
> > [User]  at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
> > [User]  at
> > org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
> > [User]  at org.apache.tomcat.core.Handler.service(Handler.java:286)
> > [User]  at
> > org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
> > [User]  at
> > org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
> > [User]  at
> > org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
> > [User]  at
> > 
>org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConnectionHandler.java:210)
> > [User]  at
> > org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
> > [User]  at
> > org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
> > [User]  at java.lang.Thread.run(Unknown Source)
> 
> > I wrote a standalone testcase (not using jboss) and everything worked.
> > So there seems to be a problem with jboss-castor integration.
> 
> > Can somebody help me? I attached my mapping.xml.
> 
> > Thank you,
> > Ralf
> 
> > <mapping>
> 
> >         <class name="de.imost.user.ejb.UserDO"
> >                access="shared"
> >                identity="login">
> >                 <description>Userdaten</description>
> >                 <cache-type type="unlimited"/>
> >                 <map-to table="S3_User"/>
> >                 <field name="login" type="string" required="true">
> >                         <sql name="login" type="char"/>
> >                 </field>
> >                 <field name="password" type="string">
> >                         <sql name="password" type="char"/>
> >                 </field>
> >                 <field name="firstname" type="string">
> >                         <sql name="firstname" type="char"/>
> >                 </field>
> >                 <field name="lastname" type="string">
> >                         <sql name="lastname" type="char"/>
> >                 </field>
> >                 <field name="email" type="string">
> >                         <sql name="email" type="char"/>
> >                 </field>
> >                 <field name="rights" type="de.imost.user.ejb.UserRightDO"
> > collection="arraylist" required="false">
> >                         <sql many-key="login"/>
> >                 </field>
> >         </class>
> 
> >         <class name="de.imost.user.ejb.UserRightDO"
> >                access="shared"
> >                depends="de.imost.user.ejb.UserDO"
> >                identity="id"
> >                key-generator="IDENTITY">
> >                 <description>Benutzerabhängige Rechte</description>
> >                 <cache-type type="unlimited"/>
> >                 <map-to table="S3_User_Right"/>
> >                 <field name="id" type="integer" required="true">
> >                         <sql name="id" type="integer"/>
> >                 </field>
> >                 <field name="user" type="de.imost.user.ejb.UserDO" required="true">
> >                         <sql name="login"/>
> >                 </field>
> >                 <field name="name" type="string">
> >                         <sql name="name" type="char"/>
> >                 </field>
> >                 <field name="value" type="boolean">
> >                         <sql name="value" type="char[01]"/>
> >                 </field>
> >         </class>
> 
> > </mapping>
> 
> > _______________________________________________
> > JBoss-user mailing list
> > [EMAIL PROTECTED]
> > http://lists.sourceforge.net/lists/listinfo/jboss-user
> 
> _______________________________________________
> JBoss-user mailing list
> [EMAIL PROTECTED]
> http://lists.sourceforge.net/lists/listinfo/jboss-user



_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to