I get an exception:

java.rmi.ServerException: RemoteException occurred in server thread; nested
exception is:

java.rmi.ServerException: EJBException:; nested exception is:

javax.ejb.EJBException: null; CausedByException is:

Method is not a known CMP field accessor, CMR field accessor, or ejbSelect
method: methodName=setParent; nested exception is:

javax.ejb.EJBException: Method is not a known CMP field accessor, CMR field
accessor, or ejbSelect method: methodName=setParent

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:292)

at sun.rmi.transport.Transport$1.run(Transport.java:148)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:144)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)

at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:7
01)

at java.lang.Thread.run(Thread.java:536)

at
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteC
all.java:247)

at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)

at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)

at org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unknown Source)

at
org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(JRMPInvokerProx
y.java:128)

at
org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:108)

at
org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:73
)

at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:76)

at org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:116)

at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76)

at $Proxy2.createSubFolder(Unknown Source)

at net.indaco.krakow.client.Main.main(Main.java:39)

Caused by: java.rmi.ServerException: EJBException:; nested exception is:

javax.ejb.EJBException: null; CausedByException is:

Method is not a known CMP field accessor, CMR field accessor, or ejbSelect
method: methodName=setParent; nested exception is:

javax.ejb.EJBException: Method is not a known CMP field accessor, CMR field
accessor, or ejbSelect method: methodName=setParent

at
org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:355
)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:207)

at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:493)

at org.jboss.ejb.Container.invoke(Container.java:720)

at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1055)

at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517)

at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:370)

at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261)

at sun.rmi.transport.Transport$1.run(Transport.java:148)

at java.security.AccessController.doPrivileged(Native Method)

at sun.rmi.transport.Transport.serviceCall(Transport.java:144)

at sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:460)

at
sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:7
01)

at java.lang.Thread.run(Thread.java:536)

Caused by: javax.ejb.EJBException: null; CausedByException is:

Method is not a known CMP field accessor, CMR field accessor, or ejbSelect
method: methodName=setParent; nested exception is:

javax.ejb.EJBException: Method is not a known CMP field accessor, CMR field
accessor, or ejbSelect method: methodName=setParent

at
net.indaco.cesati.catalogue.domain.bean.FolderBean.createSubFolder(FolderBea
n.java:147)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39
)

at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at
org.jboss.ejb.EntityContainer$ContainerInterceptor.invoke(EntityContainer.ja
va:1191)

at
org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor.invoke(JDBCRelationIn
terceptor.java:95)

at
org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchron
izationInterceptor.java:308)

at
org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(Cach
edConnectionInterceptor.java:186)

at
org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterce
ptor.java:152)

at
org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.jav
a:107)

at
org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterce
ptor.java:69)

at
org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor
.java:107)

at
org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.
java:178)

at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:60)

at
org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:13
0)

at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:203)

... 15 more

Finished executing

Here is jbosscmp-jdbc.xml

    <ejb-relation>
      <ejb-relation-name>folder-parentfolder</ejb-relation-name>
      <foreign-key-mapping/>
      <ejb-relationship-role>

<ejb-relationship-role-name>one-folder-has-many-folders</ejb-relationship-ro
le-name>
          <key-fields>
             <key-field>
               <field-name>id</field-name>
               <column-name>parent</column-name>
             </key-field>
          </key-fields>
      </ejb-relationship-role>
      <ejb-relationship-role>

<ejb-relationship-role-name>one-folder-has-one-parentfolder</ejb-relationshi
p-role-name>
          <key-fields/>
      </ejb-relationship-role>
    </ejb-relation>

ejb-jar.xml:
      <entity >
         <description><![CDATA[No Description.]]></description>

         <ejb-name>CesatiFolder</ejb-name>


<home>net.indaco.cesati.catalogue.domain.interfaces.CesatiFolderHome</home>

<remote>net.indaco.cesati.catalogue.domain.interfaces.CesatiFolder</remote>


<ejb-class>net.indaco.cesati.catalogue.domain.bean.CesatiFolderCMP</ejb-clas
s>
         <persistence-type>Container</persistence-type>
         <prim-key-class>java.lang.Integer</prim-key-class>
         <reentrant>False</reentrant>
         <cmp-version>2.x</cmp-version>
         <abstract-schema-name>CesatiFolder</abstract-schema-name>
         <cmp-field >
            <description><![CDATA[]]></description>
            <field-name>name</field-name>
         </cmp-field>
         <cmp-field >
            <description><![CDATA[]]></description>
            <field-name>id</field-name>
         </cmp-field>
         <cmp-field >
            <description><![CDATA[]]></description>
            <field-name>catalogue</field-name>
         </cmp-field>
         <primkey-field>id</primkey-field>

         <query>
            <query-method>
               <method-name>findRootFolder</method-name>
               <method-params>
                  <method-param>java.lang.String</method-param>
               </method-params>
            </query-method>
            <result-type-mapping>Remote</result-type-mapping>
            <ejb-ql><![CDATA[SELECT OBJECT(c) FROM CesatiFolder c WHERE
c.parent is null and c.catalogue = ?1]]></ejb-ql>
         </query>

      </entity>


      <ejb-relation >
         <ejb-relation-name>folder-parentfolder</ejb-relation-name>
         <!-- bidirectional -->
         <ejb-relationship-role >

<ejb-relationship-role-name>one-folder-has-many-folders</ejb-relationship-ro
le-name>
            <multiplicity>One</multiplicity>
            <relationship-role-source >
               <ejb-name>CesatiFolder</ejb-name>
            </relationship-role-source>
            <cmr-field >
               <cmr-field-name>folders</cmr-field-name>
               <cmr-field-type>java.util.Collection</cmr-field-type>
            </cmr-field>
         </ejb-relationship-role>
         <ejb-relationship-role >

<ejb-relationship-role-name>one-folder-has-one-parentfolder</ejb-relationshi
p-role-name>
            <multiplicity>Many</multiplicity>
            <relationship-role-source >
               <ejb-name>CesatiFolder</ejb-name>
            </relationship-role-source>
            <cmr-field >
               <cmr-field-name>parent</cmr-field-name>
            </cmr-field>
         </ejb-relationship-role>
      </ejb-relation>

and FolderBean.java (I use xdoclet):

package net.indaco.cesati.catalogue.domain.bean;

import net.indaco.cesati.catalogue.domain.interfaces.CesatiFolder;
import net.indaco.cesati.catalogue.domain.interfaces.CesatiFolderHome;
import java.util.Collection;
import java.util.ArrayList;

/**
 * @ejb:bean
 *   local-jndi-name="cesati/Folder"
 *   name="CesatiFolder"
 * @ejb:persistence
 *    table-name="cesatifolder"
 * @ejb:finder signature="Collection findRootFolder(java.lang.String
catalogue)"
 *    unchecked="true"
 *    query="SELECT OBJECT(c) FROM CesatiFolder c WHERE c.parent is null and
c.catalogue = ?1"
 *    result-type-mapping="Remote"
 * @jboss:remove-table "true"
 * @ejb:util generate="physical"
 * @jboss:tuned-updates "false"
 * @jboss:read-only "false"
 *
 */


public abstract class FolderBean extends
net.indaco.krakow.catalogue.domain.bean.AbstractFolderBean {

   /**
    * @ejb:interface-method view-type="remote"
    * @ejb:relation
    *    name="folder-parentfolder"
    *    role-name="one-folder-has-many-folders"
    *
    */
   public abstract java.util.Collection getFolders();

   /**
    * @ejb:interface-method view-type="remote"
    */
   public abstract void setFolders(java.util.Collection folders);

   /**
    * @ejb:interface-method view-type="remote"
    * @ejb:relation
    *    name="folder-parentfolder"
    *    role-name="one-folder-has-one-parentfolder"
    * @jboss:relation related-pk-field="id"
    *                 fk-column="parent"
    */

   public abstract CesatiFolder getParent();

   /**
    * @ejb:interface-method view-type="remote"
    */
   public abstract void setParent(CesatiFolder parent);

   /**
    * @ejb:interface-method view-type="remote"
    */
  public CesatiFolder createSubFolder() {
    CesatiFolderHome home =
(CesatiFolderHome)this._entityContext.getEJBHome();
    try {
      CesatiFolder folder = (CesatiFolder)home.create(this.getCatalogue());
/*
      if(this.getFolders() == null) {
        Collection coll = new ArrayList();
        coll.add(folder);
        this.setFolders(coll);
      }
*/
      folder.setParent((CesatiFolder)this._entityContext.getEJBObject());
//// EXCEPTION IS THROWN HERE
      return folder;
    }
    catch(java.rmi.RemoteException e) {
      throw new javax.ejb.EJBException(e);
    }
    catch(javax.ejb.CreateException e) {
      throw new javax.ejb.EJBException(e);
    }
  }
}


Any idea?
Thx
Francesco Marsoni



-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to