Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / JavaBeans / November 2003

Tip: Looking for answers? Try searching our database.

JBoss and CMR problems

Thread view: 
Steve Nakhla - 01 Nov 2003 04:40 GMT
I am rather new to J2EE programming, so please bear with me.  I am
trying to create a simple J2EE application that uses EJBs to manage
identity and address information.  To do this, I have 2 bean classes:
Address and Person.  The Person bean has the following fields:  first
name, middle name, and last name.  The Address bean has the following
fields:  street, city, state, zip code.

I've managed to setup CMP in JBoss using MySQL on the backend.  I've
created EJBHome and EJBObject interfaces for both of my entity beans,
and can create instances of each with no problem.  Now, I would like
to be able to create a Person p and assign an Address a to it as
follows:  p.setAddress(a).  Now, I understand that I have to define a
container-managed relationship to do this.  I've looked at tutorials
and documentation, and thought that I had it setup properly.  I have
defined the relationship in my ejb-jar.xml file, and the tables seem
to be created properly.  My Person table has a column named "address"
that *should* store the primary key of my Address object as a foreign
key.  However, I receive an exception whenever I try to set the
address value.  In my ejb-jar.xml file I have the following:

   <relationships>
       <ejb-relation>
           <ejb-relation-name>Person-Address</ejb-relation-name>
           <ejb-relationship-role>
               <ejb-relationship-role-name>Person-has-an-Address</ejb-relationship-role-name>
               <multiplicity>One</multiplicity>
               <relationship-role-source>
                   <ejb-name>PersonEJB</ejb-name>
               </relationship-role-source>
               <cmr-field>
                   <cmr-field-name>address</cmr-field-name>
               </cmr-field>
           </ejb-relationship-role>
           <ejb-relationship-role>
               <ejb-relationship-role-name>Address-belongs-to-Person</ejb-relationship-role-name>
               <multiplicity>One</multiplicity>
               <cascade-delete/>
               <relationship-role-source>
                   <ejb-name>AddressEJB</ejb-name>
               </relationship-role-source>
           </ejb-relationship-role>
       </ejb-relation>
   </relationships>

The exception I receive is:

EXCEPTION:  null
java.lang.reflect.UndeclaredThrowableException
       at $Proxy1.setAddress(Unknown Source)
       at ejb.addressbook.client.AddressBookClient.main(AddressBookClient.java:64)
Caused by: java.rmi.ServerException: RemoteException occurred in
server thread; nested exception is:
       java.rmi.ServerException: EJBException:; nested exception is:
       javax.ejb.EJBException: null; CausedByException is:
       null
       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:701)
       at java.lang.Thread.run(Thread.java:534)
       at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.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(JRMPInvokerProxy.java:135)
       at org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:87)
       at org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:46)
       at org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:45)
       at org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:97)
       at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:85)
       ... 2 more
Caused by: java.rmi.ServerException: EJBException:; nested exception
is:
       javax.ejb.EJBException: null; CausedByException is:
       null
       at org.jboss.ejb.plugins.LogInterceptor.handleException(LogInterceptor.java:346)
       at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:195)
       at org.jboss.ejb.plugins.ProxyFactoryFinderInterceptor.invoke(ProxyFactoryFinderInterceptor.java:122)
       at org.jboss.ejb.EntityContainer.internalInvoke(EntityContainer.java:483)
       at org.jboss.ejb.Container.invoke(Container.java:674)
       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.mx.capability.ReflectedMBeanDispatcher.invoke(ReflectedMBeanDispatcher.java:284)
       at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:549)
       at org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:359)
       at sun.reflect.GeneratedMethodAccessor28.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:701)
       at java.lang.Thread.run(Thread.java:534)
Caused by: javax.ejb.EJBException: null; CausedByException is:
       null
       at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.setInstanceValue(JDBCCMRFieldBridge.java:673)
       at org.jboss.ejb.plugins.cmp.jdbc.bridge.JDBCCMRFieldBridge.setValue(JDBCCMRFieldBridge.java:541)
       at org.jboss.ejb.plugins.cmp.bridge.EntityBridgeInvocationHandler.invoke(EntityBridgeInvocationHandler.java:126)
       at org.jboss.proxy.compiler.Runtime.invoke(Runtime.java:59)
       at ejb.addressbook.beans.PersonBean$Proxy.setAddress(<generated>)
       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.java:1044)
       at org.jboss.ejb.plugins.cmp.jdbc.JDBCRelationInterceptor.invoke(JDBCRelationInterceptor.java:95)
       at org.jboss.ejb.plugins.EntitySynchronizationInterceptor.invoke(EntitySynchronizationInterceptor.java:301)
       at org.jboss.resource.connectionmanager.CachedConnectionInterceptor.invoke(CachedConnectionInterceptor.java:186)
       at org.jboss.ejb.plugins.EntityReentranceInterceptor.invoke(EntityReentranceInterceptor.java:82)
       at org.jboss.ejb.plugins.EntityInstanceInterceptor.invoke(EntityInstanceInterceptor.java:174)
       at org.jboss.ejb.plugins.EntityLockInterceptor.invoke(EntityLockInterceptor.java:89)
       at org.jboss.ejb.plugins.EntityCreationInterceptor.invoke(EntityCreationInterceptor.java:53)
       at org.jboss.ejb.plugins.AbstractTxInterceptor.invokeNext(AbstractTxInterceptor.java:84)
       at org.jboss.ejb.plugins.TxInterceptorCMT.runWithTransactions(TxInterceptorCMT.java:243)
       at org.jboss.ejb.plugins.TxInterceptorCMT.invoke(TxInterceptorCMT.java:104)
       at org.jboss.ejb.plugins.SecurityInterceptor.invoke(SecurityInterceptor.java:117)
       at org.jboss.ejb.plugins.LogInterceptor.invoke(LogInterceptor.java:191)
       ... 20 more

I would REALLY appreciate any guidance that you all can give me.  I am
new to J2EE programming and have been learning quickly, but this is
standing in the way of my progress.  Thanks very much!

Steve Nakhla
John M Flinchbaugh - 01 Nov 2003 23:06 GMT
> address value.  In my ejb-jar.xml file I have the following:

there should be matching blocks in the jbosscmp-jdbc.xml to configure
the last details of these relationships.  search around or check jboss
docs for these too.
Signature

____________________}John Flinchbaugh{______________________

| glynis@hjsoft.com         http://www.hjsoft.com/~glynis/ |
~~Powered by Linux: Reboots are for hardware upgrades only~~


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.