Hello Alex, if you say 'only for local interfaces' you mean that the Home interface is Local (LocalHomeEmployee) ?! * * @ejb:bean name="masterdata/Position" * display-name="Masterdata Position Entity Bean" * type="CMP" * cmp-version="2.x" * jndi-name="ejb/masterdata/Position" * view-type="local" <------- ????
Is this correct ? Thanx Bjorn > > Hello Francesco, > > you have declared cmr accessors as remote methods while relationships > are allowed only for local interfaces. > > alex > > Tuesday, October 08, 2002, 4:48:15 PM, you wrote: > > FM> I get an exception: > > FM> java.rmi.ServerException: RemoteException occurred in > server thread; nested > FM> exception is: > > FM> java.rmi.ServerException: EJBException:; nested exception is: > > FM> javax.ejb.EJBException: null; CausedByException is: > > FM> Method is not a known CMP field accessor, CMR field > accessor, or ejbSelect > FM> method: methodName=setParent; nested exception is: > > FM> javax.ejb.EJBException: Method is not a known CMP field > accessor, CMR field > FM> accessor, or ejbSelect method: methodName=setParent > > FM> at > sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:292) > > FM> at sun.rmi.transport.Transport$1.run(Transport.java:148) > > FM> at java.security.AccessController.doPrivileged(Native Method) > > FM> at sun.rmi.transport.Transport.serviceCall(Transport.java:144) > > FM> at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport > .java:460) > > FM> at > FM> > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTr > ansport.java:7 > FM> 01) > > FM> at java.lang.Thread.run(Thread.java:536) > > FM> at > FM> > sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer > (StreamRemoteC > FM> all.java:247) > > FM> at > sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCal > l.java:223) > > FM> at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133) > > FM> at > org.jboss.invocation.jrmp.server.JRMPInvoker_Stub.invoke(Unkno > wn Source) > > FM> at > FM> > org.jboss.invocation.jrmp.interfaces.JRMPInvokerProxy.invoke(J > RMPInvokerProx > FM> y.java:128) > > FM> at > FM> > org.jboss.invocation.InvokerInterceptor.invoke(InvokerIntercep > tor.java:108) > > FM> at > FM> > org.jboss.proxy.TransactionInterceptor.invoke(TransactionInter > ceptor.java:73 > FM> ) > > FM> at > org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor > .java:76) > > FM> at > org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor > .java:116) > > FM> at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76) > > FM> at $Proxy2.createSubFolder(Unknown Source) > > FM> at net.indaco.krakow.client.Main.main(Main.java:39) > > FM> Caused by: java.rmi.ServerException: EJBException:; > nested exception is: > > FM> javax.ejb.EJBException: null; CausedByException is: > > FM> Method is not a known CMP field accessor, CMR field > accessor, or ejbSelect > FM> method: methodName=setParent; nested exception is: > > FM> javax.ejb.EJBException: Method is not a known CMP field > accessor, CMR field > FM> accessor, or ejbSelect method: methodName=setParent > > FM> at > FM> > org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterc > eptor.java:355 > FM> ) > > FM> at > org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:207) > > FM> at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:493) > > FM> at org.jboss.ejb.Container.invoke(Container.java:720) > > FM> at org.jboss.ejb.EntityContainer.invoke(EntityContainer.java:1055) > > FM> at > org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:517) > > FM> at > org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoke > r.java:370) > > FM> at sun.reflect.GeneratedMethodAccessor44.invoke(Unknown Source) > > FM> at > FM> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth > odAccessorImpl > FM> .java:25) > > FM> at java.lang.reflect.Method.invoke(Method.java:324) > > FM> at > sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:261) > > FM> at sun.rmi.transport.Transport$1.run(Transport.java:148) > > FM> at java.security.AccessController.doPrivileged(Native Method) > > FM> at sun.rmi.transport.Transport.serviceCall(Transport.java:144) > > FM> at > sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport > .java:460) > > FM> at > FM> > sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTr > ansport.java:7 > FM> 01) > > FM> at java.lang.Thread.run(Thread.java:536) > > FM> Caused by: javax.ejb.EJBException: null; CausedByException is: > > FM> Method is not a known CMP field accessor, CMR field > accessor, or ejbSelect > FM> method: methodName=setParent; nested exception is: > > FM> javax.ejb.EJBException: Method is not a known CMP field > accessor, CMR field > FM> accessor, or ejbSelect method: methodName=setParent > > FM> at > FM> > net.indaco.cesati.catalogue.domain.bean.FolderBean.createSubFo > lder(FolderBea > FM> n.java:147) > > FM> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > FM> at > FM> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccess > orImpl.java:39 > FM> ) > > FM> at > FM> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMeth > odAccessorImpl > FM> .java:25) > > FM> at java.lang.reflect.Method.invoke(Method.java:324) > > FM> at > FM> > org.jboss.ejb.EntityContainer$ContainerInterceptor.invoke(Enti > tyContainer.ja > FM> va:1191) > > FM> at > FM> > org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor.invoke( > JDBCRelationIn > FM> terceptor.java:95) > > FM> at > FM> > org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke( > EntitySynchron > FM> izationInterceptor.java:308) > > FM> at > FM> > org.jboss.resource.connectionmanager.CachedConnectionIntercept > or.invoke(Cach > FM> edConnectionInterceptor.java:186) > > FM> at > FM> > org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityI > nstanceInterce > FM> ptor.java:152) > > FM> at > FM> > org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockI > nterceptor.jav > FM> a:107) > > FM> at > FM> > org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityC > reationInterce > FM> ptor.java:69) > > FM> at > FM> > org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(Abstrac > tTxInterceptor > FM> .java:107) > > FM> at > FM> > org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxI > nterceptorCMT. > FM> java:178) > > FM> at > org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT > .java:60) > > FM> at > FM> > org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInter > ceptor.java:13 > FM> 0) > > FM> at > org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:203) > > FM> ... 15 more > > FM> Finished executing > > FM> Here is jbosscmp-jdbc.xml > > FM> <ejb-relation> > FM> <ejb-relation-name>folder-parentfolder</ejb-relation-name> > FM> <foreign-key-mapping/> > FM> <ejb-relationship-role> > > FM> > <ejb-relationship-role-name>one-folder-has-many-folders</ejb-r > elationship-ro > le-name>> > FM> <key-fields> > FM> <key-field> > FM> <field-name>id</field-name> > FM> <column-name>parent</column-name> > FM> </key-field> > FM> </key-fields> > FM> </ejb-relationship-role> > FM> <ejb-relationship-role> > > FM> > <ejb-relationship-role-name>one-folder-has-one-parentfolder</e > jb-relationshi > p-role-name>> > FM> <key-fields/> > FM> </ejb-relationship-role> > FM> </ejb-relation> > > FM> ejb-jar.xml: > FM> <entity > > FM> <description><![CDATA[No Description.]]></description> > > FM> <ejb-name>CesatiFolder</ejb-name> > > > FM> > <home>net.indaco.cesati.catalogue.domain.interfaces.CesatiFold > erHome</home> > > FM> > <remote>net.indaco.cesati.catalogue.domain.interfaces.CesatiFo > lder</remote> > > > FM> > <ejb-class>net.indaco.cesati.catalogue.domain.bean.CesatiFolde > rCMP</ejb-clas > s>> > FM> <persistence-type>Container</persistence-type> > FM> <prim-key-class>java.lang.Integer</prim-key-class> > FM> <reentrant>False</reentrant> > FM> <cmp-version>2.x</cmp-version> > FM> <abstract-schema-name>CesatiFolder</abstract-schema-name> > FM> <cmp-field > > FM> <description><![CDATA[]]></description> > FM> <field-name>name</field-name> > FM> </cmp-field> > FM> <cmp-field > > FM> <description><![CDATA[]]></description> > FM> <field-name>id</field-name> > FM> </cmp-field> > FM> <cmp-field > > FM> <description><![CDATA[]]></description> > FM> <field-name>catalogue</field-name> > FM> </cmp-field> > FM> <primkey-field>id</primkey-field> > > FM> <query> > FM> <query-method> > FM> <method-name>findRootFolder</method-name> > FM> <method-params> > FM> <method-param>java.lang.String</method-param> > FM> </method-params> > FM> </query-method> > FM> <result-type-mapping>Remote</result-type-mapping> > FM> <ejb-ql><![CDATA[SELECT OBJECT(c) FROM > CesatiFolder c WHERE > FM> c.parent is null and c.catalogue = ?1]]></ejb-ql> > FM> </query> > > FM> </entity> > > > FM> <ejb-relation > > FM> > <ejb-relation-name>folder-parentfolder</ejb-relation-name> > FM> <!-- bidirectional --> > FM> <ejb-relationship-role > > > FM> > <ejb-relationship-role-name>one-folder-has-many-folders</ejb-r > elationship-ro > le-name>> > FM> <multiplicity>One</multiplicity> > FM> <relationship-role-source > > FM> <ejb-name>CesatiFolder</ejb-name> > FM> </relationship-role-source> > FM> <cmr-field > > FM> <cmr-field-name>folders</cmr-field-name> > FM> > <cmr-field-type>java.util.Collection</cmr-field-type> > FM> </cmr-field> > FM> </ejb-relationship-role> > FM> <ejb-relationship-role > > > FM> > <ejb-relationship-role-name>one-folder-has-one-parentfolder</e > jb-relationshi > p-role-name>> > FM> <multiplicity>Many</multiplicity> > FM> <relationship-role-source > > FM> <ejb-name>CesatiFolder</ejb-name> > FM> </relationship-role-source> > FM> <cmr-field > > FM> <cmr-field-name>parent</cmr-field-name> > FM> </cmr-field> > FM> </ejb-relationship-role> > FM> </ejb-relation> > > FM> and FolderBean.java (I use xdoclet): > > FM> package net.indaco.cesati.catalogue.domain.bean; > > FM> import net.indaco.cesati.catalogue.domain.interfaces.CesatiFolder; > FM> import > net.indaco.cesati.catalogue.domain.interfaces.CesatiFolderHome; > FM> import java.util.Collection; > FM> import java.util.ArrayList; > > FM> /** > FM> * @ejb:bean > FM> * local-jndi-name="cesati/Folder" > FM> * name="CesatiFolder" > FM> * @ejb:persistence > FM> * table-name="cesatifolder" > FM> * @ejb:finder signature="Collection > findRootFolder(java.lang.String > FM> catalogue)" > FM> * unchecked="true" > FM> * query="SELECT OBJECT(c) FROM CesatiFolder c WHERE > c.parent is null and > FM> c.catalogue = ?1" > FM> * result-type-mapping="Remote" > FM> * @jboss:remove-table "true" > FM> * @ejb:util generate="physical" > FM> * @jboss:tuned-updates "false" > FM> * @jboss:read-only "false" > FM> * > FM> */ > > > FM> public abstract class FolderBean extends > FM> net.indaco.krakow.catalogue.domain.bean.AbstractFolderBean { > > FM> /** > FM> * @ejb:interface-method view-type="remote" > FM> * @ejb:relation > FM> * name="folder-parentfolder" > FM> * role-name="one-folder-has-many-folders" > FM> * > FM> */ > FM> public abstract java.util.Collection getFolders(); > > FM> /** > FM> * @ejb:interface-method view-type="remote" > FM> */ > FM> public abstract void setFolders(java.util.Collection folders); > > FM> /** > FM> * @ejb:interface-method view-type="remote" > FM> * @ejb:relation > FM> * name="folder-parentfolder" > FM> * role-name="one-folder-has-one-parentfolder" > FM> * @jboss:relation related-pk-field="id" > FM> * fk-column="parent" > FM> */ > > FM> public abstract CesatiFolder getParent(); > > FM> /** > FM> * @ejb:interface-method view-type="remote" > FM> */ > FM> public abstract void setParent(CesatiFolder parent); > > FM> /** > FM> * @ejb:interface-method view-type="remote" > FM> */ > FM> public CesatiFolder createSubFolder() { > FM> CesatiFolderHome home = > FM> (CesatiFolderHome)this._entityContext.getEJBHome(); > FM> try { > FM> CesatiFolder folder = > (CesatiFolder)home.create(this.getCatalogue()); > FM> /* > FM> if(this.getFolders() == null) { > FM> Collection coll = new ArrayList(); > FM> coll.add(folder); > FM> this.setFolders(coll); > FM> } > FM> */ > FM> > folder.setParent((CesatiFolder)this._entityContext.getEJBObject()); > FM> //// EXCEPTION IS THROWN HERE > FM> return folder; > FM> } > FM> catch(java.rmi.RemoteException e) { > FM> throw new javax.ejb.EJBException(e); > FM> } > FM> catch(javax.ejb.CreateException e) { > FM> throw new javax.ejb.EJBException(e); > FM> } > FM> } > FM> } > > > FM> Any idea? > FM> Thx > FM> Francesco Marsoni > > > -- > Best regards, > Alex Loubyansky >> ------------------------------------------------------- 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