Hello, I am running JBoss3.0.0RC2_Tomcat4.0.3 against Firebird 1.0 on Mac OS X 10.1.4. I was trying to deploy a simple Customer EJB which has a cmr to a ShippingAddress. I get the following error:
org.jboss.deployment.DeploymentException: error in create of EjbModule: file:/jboss-3.0.0RC2/server/default/deploy/ad-ejb.jar; - nested throwable: (org.jboss.deployment.DeploymentException: Atleast one role of a foreign-key mapped relationship must have key fields: ejb-relation-name=Customer-DefaultShippingAddress) at org.jboss.ejb.EJBDeployer.create(EJBDeployer.java:380) at org.jboss.deployment.MainDeployer.create(MainDeployer.java:651) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:526) at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:490) at java.lang.reflect.Method.invoke(Native Method) at org.jboss.mx.capability.ReflectedMBeanDispatcher.invoke (ReflectedMBeanDispatcher.java:284) at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:491) at org.jboss.util.jmx.MBeanProxy.invoke(MBeanProxy.java:174) at $Proxy4.deploy(Unknown Source) at org.jboss.deployment.scanner.URLDeploymentScanner.deploy (URLDeploymentScanner.java:405) at org.jboss.deployment.scanner.URLDeploymentScanner.scanDirectory (URLDeploymentScanner.java:586) at org.jboss.deployment.scanner.URLDeploymentScanner.scan (URLDeploymentScanner.java:465) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop( AbstractDeploymentScanner.java:202) at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run (AbstractDeploymentScanner.java:191) The cmr XML description: <ejb-relation > <ejb-relation-name>Customer- DefaultShippingAddress</ejb-relation-name> <!-- unidirectional --> <ejb-relationship-role > <ejb-relationship-role- name>Customer-has-DefaultShippingAddress</ejb-relationship-role-name> <multiplicity>One</multiplicity> <relationship-role-source > <ejb-name>Customer</ejb-name> </relationship-role-source> <cmr-field > <cmr-field-name>defaultShippingAddress</cmr-field-name> </cmr-field> </ejb-relationship-role> <ejb-relationship-role > <ejb-relationship-role- name>DefaultShippingAddress-belongs-to- Customer</ejb-relationship-role-name> <multiplicity>One</multiplicity> <relationship-role-source > <ejb-name>Address</ejb-name> </relationship-role-source> </ejb-relationship-role> </ejb-relation> Seems correct. Does anyone know what "key" the deployer is referencing? XDoclet source is below. Thanks for any help, James Richards ++++++++++++++++++++ package com.mycorp.ejb.customer; import javax.ejb.EntityBean; import javax.ejb.EntityContext; import javax.ejb.CreateException; import com.mycorp.ejb.address.AddressLocal; /** * A general purpose Customer bean. * * Uses XDoclet based tagging: http://xdoclet.sourceforge.net * * @ejb:bean name="Customer" * type="CMP" * jndi-name="ejb/mycorp/Customer" * local-jndi-name="CustomerLocal" * view-type="both" * primkey-field="id" * cmp-version="2.x" * schema="Customer" * * @ejb:pk class="java.lang.Integer" * * @ejb:home generate="both" * remote-class="com.mycorp.ejb.customer.CustomerHome" * local-class="com.mycorp.ejb.customer.CustomerLocalHome" * * @jboss:table-name="customer" * @jboss:create-table="true" * @jboss:remove-table="true" * @jboss:tuned-updates="true" * @jboss:read-only="false" * */ public abstract class CustomerBean implements EntityBean { EntityContext context; /** * A customer must have shipping/billing addresses prior to creation. * * @ejb:create-method */ public java.lang.Integer ejbCreate(Integer id, AddressLocal defaultShipping ) throws javax.ejb.CreateException { setId(id); return null; } public void ejbPostCreate(Integer id, AddressLocal defaultShipping ) { setDefaultShippingAddress(defaultShipping); } /** * @ejb:pk-field * @ejb:persistent-field * @ejb:interface-method */ public abstract Integer getId(); /** * NOT a remote method */ public abstract void setId(Integer id); /** * @ejb:interface-method * @ejb:relation name="Customer-DefaultShippingAddress" * role-name="Customer-has-DefaultShippingAddress" * target-ejb="Address" * target-role- name="DefaultShippingAddress-belongs-to-Customer" */ public abstract AddressLocal getDefaultShippingAddress(); /** * @ejb:interface-method */ public abstract void setDefaultShippingAddress(AddressLocal shippingAddress); } _______________________________________________________________ Have big pipes? SourceForge.net is looking for download mirrors. We supply the hardware. You get the recognition. Email Us: [EMAIL PROTECTED] _______________________________________________ JBoss-user mailing list [EMAIL PROTECTED] https://lists.sourceforge.net/lists/listinfo/jboss-user