Perhaps you are returning something (the object or one of its constituent parts) that is not marked as serializable.
----- Original Message ----- From: "Hanson, Matthew" <[EMAIL PROTECTED]> To: <[EMAIL PROTECTED]> Sent: Monday, January 20, 2003 12:17 PM Subject: [JBoss-user] NotSerializableException Thrown by RelationSet in jboss-3.0.4_tom cat-4.1.12 > Hi-- > > I'm trying to configure jboss 3.0.4 w/tomcat4.1.12 for CMR for two tables in > our Oracle DB. I use xdoclet1.1.2 to generate the interface and bean > classes. I have managed CMP for both tables that I'm using, but am having > some trouble joining the two for CMR. > > Apologies in advance for the deluge of xml and code you are about to see... > :) > > The bean is deployed just fine, but the following error stack is generated > when I try to use the one bean to get the many bean via a Collection: > > eBillClient caught an unexpected exception! > java.lang.reflect.UndeclaredThrowableException > at $Proxy1.getSubscribers(Unknown Source) > at client.eBill.eBillClient.main(eBillClient.java:54) > Caused by: java.io.NotSerializableException: > org.jboss.ejb.plugins.cmp.jdbc.bridge.RelationSet > at > java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1054) > at > java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:278) > at java.rmi.MarshalledObject.<init>(MarshalledObject.java:92) > at > org.jboss.invocation.jrmp.server.JRMPInvoker.invoke(JRMPInvoker.java:387) > at sun.reflect.GeneratedMethodAccessor42.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) > 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:138) > at > org.jboss.invocation.InvokerInterceptor.invoke(InvokerInterceptor.java:108) > at > org.jboss.proxy.TransactionInterceptor.invoke(TransactionInterceptor.java:77 > ) > at > org.jboss.proxy.SecurityInterceptor.invoke(SecurityInterceptor.java:80) > at > org.jboss.proxy.ejb.EntityInterceptor.invoke(EntityInterceptor.java:116) > at org.jboss.proxy.ClientContainer.invoke(ClientContainer.java:76) > ... 2 more > > Here is the relationship from ejb-jar.xml: > <!-- Relationships --> > <relationships > > <ejb-relation > > <ejb-relation-name>customer-subscriber</ejb-relation-name> > <!-- bidirectional --> > <ejb-relationship-role > > > <ejb-relationship-role-name>customer-has-subscribers</ejb-relationship-role- > name> > <multiplicity>One</multiplicity> > <relationship-role-source > > <ejb-name>account/customerBean</ejb-name> > </relationship-role-source> > <cmr-field > > <cmr-field-name>subscribers</cmr-field-name> > <cmr-field-type>java.util.Collection</cmr-field-type> > </cmr-field> > </ejb-relationship-role> > <ejb-relationship-role > > > <ejb-relationship-role-name>subscriber-belongs-to-customer</ejb-relationship > -role-name> > <multiplicity>Many</multiplicity> > <relationship-role-source > > <ejb-name>account/subscriberBean</ejb-name> > </relationship-role-source> > <cmr-field > > <cmr-field-name>customer</cmr-field-name> > </cmr-field> > </ejb-relationship-role> > </ejb-relation> > </relationships> > > Here is the relationship from jbosscmp-jdbc.xml: > <relationships> > <ejb-relation> > <ejb-relation-name>customer-subscriber</ejb-relation-name> > <foreign-key-mapping/> > <ejb-relationship-role> > > <ejb-relationship-role-name>customer-has-subscribers</ejb-relationship-role- > name> > <key-fields> > <key-field> > <field-name>customerId</field-name> > <column-name>customer_id</column-name> > </key-field> > </key-fields> > </ejb-relationship-role> > <ejb-relationship-role> > > <ejb-relationship-role-name>subscriber-belongs-to-customer</ejb-relationship > -role-name> > <key-fields/> > </ejb-relationship-role> > </ejb-relation> > </relationships> > > Here is the customer bean w/xdoclet tags: > package com.uscc.account.entity; > > // uscc ejb imports > import com.uscc.ejb.entity.defaultEntityBean; > > // util imports > import java.util.Collection; > > /** > * > * // begin class level xdoclet attributes > * @ejb:bean name="account/customerBean" > * display-name="General customer and BAN information" > * jndi-name="com/uscc/account/entity/customerBean" > * view-type="remote" > * type="CMP" > * schema="account" > * > * @ejb:home extends="javax.ejb.EJBHome" > * @ejb:interface extends="javax.ejb.EJBObject" > * > * @ejb:pk extends="java.lang.Object" > * > * @ejb:transaction type="Required" > * > * // begin jboss xdoclet attributes > * @jboss:datasource name="OracleDB" > * > * @jboss:table-name table-name="customer" > */ > public abstract class customerBean extends defaultEntityBean > { > /** > * @ejb:interface-method view="remote" > * @ejb:persistent-field > * @ejb:pk-field > * > * @jboss:column-name name="customer_id" > */ > public abstract Long getCustomerId(); > > /** > * @ejb:interface-method view="remote" > * @ejb:persistent-field > * > * @jboss:column-name name="customer_ssn" > */ > public abstract Long getSSN(); > > /** > * @ejb:interface-method view="remote" > * > * @ejb:relation name="customer-subscriber" > * role-name="customer-has-subscribers" > */ > public abstract Collection getSubscribers(); > > /** > * @ejb:interface-method view="remote" > */ > public abstract void setSubscribers(Collection subscribers); > } > > Here is the subscriber class: > package com.uscc.account.entity; > > // billview ejb imports > import com.uscc.ejb.entity.defaultEntityBean; > import com.uscc.account.interfaces.customerBean; > > /** > * > * // begin class level xdoclet attributes > * @ejb:bean name="account/subscriberBean" > * display-name="General BAN information" > * jndi-name="com/uscc/account/entity/subscriberBean" > * view-type="remote" > * type="CMP" > * schema="subscriber" > * > * @ejb:home extends="javax.ejb.EJBHome" > * @ejb:interface extends="javax.ejb.EJBObject" > * > * @ejb:pk extends="java.lang.Object" > * > * @ejb:transaction type="Required" > * > * // begin jboss xdoclet attributes > * @jboss:datasource name="OracleDB" > * > * @jboss:table-name table-name="subscriber" > */ > public abstract class subscriberBean extends defaultEntityBean > { > /** > * @ejb:interface-method view="remote" > * @ejb:persistent-field > * > * @ejb:pk-field > * > * @jboss:column-name name="subscriber_no" > */ > public abstract String getSubscriberNo(); > > /** > * @ejb:interface-method view="remote" > * @ejb:persistent-field > * > * @jboss:column-name name="customer_id" > */ > public abstract String getCustomerId(); > > /** > * @ejb:interface-method view="remote" > * @ejb:persistent-field > * > * @jboss:column-name name="contact_tn" > */ > public abstract String getContactTN(); > > /** > * @ejb:interface-method view="remote" > * > * @ejb:relation name="customer-subscriber" > * role-name="subscriber-belongs-to-customer" > * > * @jboss:relation fk-column="customer_id" > * related-pk-field="customerId" > */ > public abstract customerBean getCustomer(); > > /** > * @ejb:interface-method view="remote" > */ > public abstract void > setCustomer(com.uscc.account.interfaces.customerBean theCustomer); > } > > Can someone eyeball something that is hosed up. I haven't been able to find > anything on the web regarding this type of exception, so I'm stumped. > > Thanks! > Matt Hanson > > > ------------------------------------------------------- > This SF.NET email is sponsored by: FREE SSL Guide from Thawte > are you planning your Web Server Security? Click here to get a FREE > Thawte SSL guide and find the answers to all your SSL security issues. > http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en > _______________________________________________ > JBoss-user mailing list > [EMAIL PROTECTED] > https://lists.sourceforge.net/lists/listinfo/jboss-user ------------------------------------------------------- This SF.NET email is sponsored by: FREE SSL Guide from Thawte are you planning your Web Server Security? Click here to get a FREE Thawte SSL guide and find the answers to all your SSL security issues. http://ads.sourceforge.net/cgi-bin/redirect.pl?thaw0026en _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user