ThisRelationshipFieldWasGeneratedByTheNameMapper7's

Cannot get around this error.
[27/Oct/2003:07:47:30] FINE ( 2388): model exception:
com.sun.jdo.api.persistence.model.util.ModelValidationException: The field partBin has a mapping which is not the exact inverse of its related field thisRelationshipFieldWasGeneratedByTheNameMapper7's mapping.
Set the related field for both relationship fields to None, unmap one of the fields, then reset the related field.
Is there a "deploy" anywhere's in between this unmapping. I can null out the mapping in the
mapping file, and the ejb-jar, but I still get errors deploying unless I change the source code
for the cmr field.
What it says is not the exact inverse, IS the exact inverse
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <cmr-field-mapping>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <cmr-field-name>thisRelationshipFieldWasGeneratedByTheNameMapper7</cmr-field-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.TCODE</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINTCODE</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.PROD</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINPROD</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.MEDIA</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINMEDIA</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.FWC</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINFWC</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.PART_NO</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINPART_NO</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </cmr-field-mapping>
And the real crm relationship;
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <cmr-field-mapping>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <cmr-field-name>partBin</cmr-field-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINPART_NO</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.PART_NO</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINFWC</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.FWC</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINMEDIA</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.MEDIA</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINPROD</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.PROD</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>SOURCESINK_EEDNC_DBSTORE.PARTBINTCODE</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: <column-name>PARTBIN_EEDNC_DBSTORE.TCODE</column-name>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </column-pair>
[27/Oct/2003:07:47:28] INFO ( 2388): CORE3282: stdout: </cmr-field-mapping>
Anyhow, I tired of looking at logs for days now. There is apparently no help on this container
mapping.
For now I am going to try adding a cmr field going the other way, converting to a bi directional
relationship in the vanilla j2ee stuff.

Adding a cmr field going back the other way, solved the "thisRelationshipFieldWasGeneratedByTheNameMapper7's" problem, apparently.
Everything deployed and worked, including findbyprimarykey. I just manually added
the same mapping for the new j2ee cmr as the thisRelationshipFieldWasGeneratedByTheNameMapper7's mapping said was bogus
and CRUD works with the 5 field compound primary key.
At least I won't stagnate any longer in "thisRelationshipFieldWasGeneratedByTheNameMapper7's"
hell, and can get on with real work, and stop fighting with the app server. Not cool, as
it required source code changes to add the cmr field to the entity bean. Also, there should
be no relationship going back to the source bean, although I need one to function??? but
only with the compound primary key. A single PK seems to like the thisRelationshipFieldWasGeneratedByTheNameMapper, and deploys and runs fine.

Similar Messages

  • Exists some problem with auto-relationship?

    Hi all,
    I'm getting the following exception when I make deploy.
    [14/May/2003:12:23:28] FINE ( 3132): Field: atributos
    [14/May/2003:12:23:28] FINE ( 3132): Field: coluna br.com.inttegra.infra.bean.tabela.ColunaTabelaLocal
    [14/May/2003:12:23:28] FINE ( 3132): -Methods: getColuna setColuna
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.tabela.ColunaTabelaEJB_849864039_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.tabela.ColunaTabelaEJB_849864039_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): manySide: false
    [14/May/2003:12:23:28] FINE ( 3132): Field: thisRelationshipFieldWasGeneratedByTheNameMapper67
    [14/May/2003:12:23:28] FINE ( 3132): Field: classe br.com.inttegra.infra.bean.classes.ClassesLocal
    [14/May/2003:12:23:28] FINE ( 3132): -Methods: getClasse setClasse
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.classes.ClassesEJB_413640801_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.classes.ClassesEJB_413640801_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): manySide: false
    [14/May/2003:12:23:28] FINE ( 3132): Field: thisRelationshipFieldWasGeneratedByTheNameMapper71
    [14/May/2003:12:23:28] FINE ( 3132): Finder: ejbFindByPrimaryKey
    [14/May/2003:12:23:28] FINE ( 3132): Finder: ejbFindAll
    [14/May/2003:12:23:28] FINER ( 3132): EJBQLC compile query
    Bean: ParseAtributo
    Method: java.util.Collection findAll()
    EJBQL: select object(pa) from ParseAtributoEJB pa
    [14/May/2003:12:23:28] FINER ( 3132): EJBQLC start syntax analysis
    [14/May/2003:12:23:28] FINEST ( 3132): EJBQLC dump tree (AST)
    QUERY [61, (0/0), null]
    from [5, (1/19), null]
    RANGE [62, (0/0), null]
    ParseAtributoEJB [46, (1/24), null]
    pa [46, (1/41), null]
    select [4, (1/1), null]
    object [8, (1/8), null]
    pa [46, (1/15), null]
    WHERE [6, (0/0), null]
    TRUE [10, (0/0), null]
    [14/May/2003:12:23:28] FINER ( 3132): EJBQLC start semantic analysis
    [14/May/2003:12:23:28] FINEST ( 3132): EJBQLC dump tree (typed AST)
    QUERY [61, (0/0), null]
    from [5, (1/19), null]
    RANGE [62, (0/0), null]
    ParseAtributoEJB [68, (1/24), ParseAtributo]
    pa [67, (1/41), ParseAtributo]
    select [4, (1/1), null]
    object [8, (1/8), ParseAtributo]
    pa [66, (1/15), ParseAtributo]
    WHERE [6, (0/0), null]
    TRUE [10, (0/0), boolean]
    [14/May/2003:12:23:28] FINER ( 3132): EJBQLC start code generation
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.parse.ParseAtributoEJB789766943_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.parse.ParseAtributoEJB789766943_JDOState
    [14/May/2003:12:23:28] FINER ( 3132): EJBQLC result JDOQLElements(candidateClass: br.com.inttegra.infra.bean.parse.ParseAtributoEJB789766943_JDOState, filter: true, result: this, resultType: br.com.inttegra.infra.bean.parse.ParseAtributoEJB789766943_JDOState, isPCResult: true)
    [14/May/2003:12:23:28] FINE ( 3132): Selectors: 0
    [14/May/2003:12:23:28] FINE ( 3132): CreateMethod: br.com.inttegra.infra.bean.parse.ParseAtributoEJBcreate
    [14/May/2003:12:23:28] FINE ( 3132): ejbCreateMethod: ejbCreate
    [14/May/2003:12:23:28] FINE ( 3132): ejbPostCreateMethod: ejbPostCreate
    [14/May/2003:12:23:28] FINE ( 3132): Processing method: unsetEntityContext
    [14/May/2003:12:23:28] FINE ( 3132): Known method: null
    [14/May/2003:12:23:28] FINE ( 3132): Found method: public void br.com.inttegra.infra.bean.parse.ParseAtributoEJB.unsetEntityContext()
    [14/May/2003:12:23:28] FINE ( 3132): Processing method: ejbRemove
    [14/May/2003:12:23:28] FINE ( 3132): Known method: null
    [14/May/2003:12:23:28] FINE ( 3132): Found method: public void br.com.inttegra.infra.bean.parse.ParseAtributoEJB.ejbRemove() throws javax.ejb.RemoveException,javax.ejb.EJBException
    [14/May/2003:12:23:28] FINE ( 3132): Processing method: beforeCompletion
    [14/May/2003:12:23:28] FINE ( 3132): Known method: null
    [14/May/2003:12:23:28] FINE ( 3132): Processing method: ejbLoad
    [14/May/2003:12:23:28] FINE ( 3132): Known method: null
    [14/May/2003:12:23:28] FINE ( 3132): Found method: public void br.com.inttegra.infra.bean.parse.ParseAtributoEJB.ejbLoad() throws javax.ejb.EJBException,java.rmi.RemoteException
    [14/May/2003:12:23:28] FINE ( 3132): Processing method: ejbStore
    [14/May/2003:12:23:28] FINE ( 3132): Known method: null
    [14/May/2003:12:23:28] FINE ( 3132): Found method: public void br.com.inttegra.infra.bean.parse.ParseAtributoEJB.ejbStore() throws javax.ejb.EJBException,java.rmi.RemoteException
    [14/May/2003:12:23:28] FINE ( 3132): Processing method: jdoCleanAllRefs
    [14/May/2003:12:23:28] FINE ( 3132): Known method: null
    [14/May/2003:12:23:28] FINE ( 3132): Processing method: setEntityContext
    [14/May/2003:12:23:28] FINE ( 3132): Known method: null
    [14/May/2003:12:23:28] FINE ( 3132): Found method: public void br.com.inttegra.infra.bean.parse.ParseAtributoEJB.setEntityContext(javax.ejb.EntityContext)
    [14/May/2003:12:23:28] FINE ( 3132): pkfield: idParseAtributo
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.parse.ParseAtributoEJB789766943_JDOState
    [14/May/2003:12:23:28] FINEST ( 3132): TP PCClassGen: generating 'br/com/inttegra/infra/bean/parse/ParseAtributoEJB789766943_JDOState'...
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.parse.ParseEJB_1482881505_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.tabela.ColunaTabelaEJB_849864039_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.classes.ClassesEJB_413640801_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.parse.ParseEJB_1482881505_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.tabela.ColunaTabelaEJB_849864039_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.classes.ClassesEJB_413640801_JDOState
    [14/May/2003:12:23:28] FINEST ( 3132): TP PCClassGen: DONE generating 'br/com/inttegra/infra/bean/parse/ParseAtributoEJB789766943_JDOState'...
    [14/May/2003:12:23:28] FINE ( 3132): gen file in /u03/dds/dds/var/opt/SUNWappserver7/domains/domainCronos/ServerNC/generated/ejb/j2ee-modules/NC
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.identificacao.IdentificacaoEJB_1068400097_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): ##### PCImplClass Name is br.com.inttegra.infra.bean.resposta.RespostaEJB670563865_JDOState
    [14/May/2003:12:23:28] FINE ( 3132): listCmrs identificacoes parse resposta
    [14/May/2003:12:23:28] FINE ( 3132): persistentClass br.com.inttegra.infra.bean.identificacao.IdentificacaoEJB
    [14/May/2003:12:23:28] SEVERE ( 3132): JDOCodeGenerator: Caught Exception in generating CMP:
    javax.ejb.EJBException: CMRFieldInfo not found for field identificacaoPai
    at com.sun.enterprise.deployment.PersistenceDescriptor.getCMRFieldInfoByName(PersistenceDescriptor.java:262)
    at com.iplanet.ias.persistence.internal.model.ejb.util.NameMapper.getRelatedEjbDescriptor(NameMapper.java:368)
    at com.iplanet.ias.persistence.internal.model.ejb.util.NameMapper.getEjbNameForLocalInterface(NameMapper.java:297)
    at com.sun.jdo.spi.persistence.support.ejb.model.util.NameMapper.getPersistenceClassForLocalInterface(NameMapper.java:284)
    at com.sun.jdo.spi.persistence.support.ejb.model.DeploymentDescriptorModel.getFieldType(DeploymentDescriptorModel.java:503)
    at com.sun.jdo.api.persistence.model.util.ModelValidator.shouldBeRelationship(ModelValidator.java:2377)
    at com.sun.jdo.api.persistence.model.util.ModelValidator.isLegalRelationship(ModelValidator.java:2384)
    at com.sun.jdo.api.persistence.model.util.ModelValidator.getFieldsValidationList(ModelValidator.java:325)
    at com.sun.jdo.api.persistence.model.util.ModelValidator.getBasicValidationList(ModelValidator.java:167)
    at com.sun.jdo.api.persistence.model.util.ModelValidator.getFullValidationList(ModelValidator.java:183)
    at com.sun.jdo.api.persistence.model.util.ModelValidator.fullValidationCheck(ModelValidator.java:131)
    at com.sun.jdo.api.persistence.model.Model.validate(Model.java:1592)
    at com.iplanet.ias.persistence.internal.ejb.ejbc.JDOCodeGenerator.validate(JDOCodeGenerator.java:189)
    at com.iplanet.ias.persistence.internal.ejb.ejbc.JDOCodeGenerator.generate(JDOCodeGenerator.java:225)
    at com.iplanet.ias.ejb.codegen.CmpCompiler.compile(CmpCompiler.java:155)
    at com.iplanet.ias.ejb.codegen.IASEJBC.ejbc(IASEJBC.java:1029)
    at com.iplanet.ias.deployment.backend.EJBCompiler.preDeployModule(EJBCompiler.java:464)
    at com.iplanet.ias.deployment.backend.EJBCompiler.compile(EJBCompiler.java:181)
    at com.iplanet.ias.deployment.backend.EjbModuleDeployer.runEJBC(EjbModuleDeployer.java:246)
    at com.iplanet.ias.deployment.backend.EjbModuleDeployer.deploy(EjbModuleDeployer.java:128)
    at com.iplanet.ias.deployment.backend.ModuleDeployer.doRequest(ModuleDeployer.java:77)
    at com.iplanet.ias.admin.server.core.mbean.config.ManagedServerInstance.deployEJBJarModuleArchiveOrDirectory(ManagedServerInstance.java:890)
    at com.iplanet.ias.admin.server.core.mbean.config.ManagedServerInstance.deployEJBJarModule(ManagedServerInstance.java:841)
    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 com.iplanet.ias.admin.server.core.jmx.Introspector.invokeMethodOn(Introspector.java:188)
    at com.iplanet.ias.admin.server.core.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:137)
    at com.iplanet.ias.admin.server.core.jmx.ASMBeanServerImpl.invoke(ASMBeanServerImpl.java:222)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.callInvoke(AdminAPIEntryServlet.java:217)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.callMBean(AdminAPIEntryServlet.java:176)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.doGet(AdminAPIEntryServlet.java:101)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.doPost(AdminAPIEntryServlet.java:83)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:720)
    at org.apache.catalina.core.StandardWrapperValve.access$000(StandardWrapperValve.java:118)
    at org.apache.catalina.core.StandardWrapperValve$1.run(StandardWrapperValve.java:278)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:274)
    at org.apache.catalina.core.S
    [14/May/2003:12:23:28] WARNING ( 3132): DPL5035:Error while running ejbc
    com.iplanet.ias.deployment.backend.IASDeploymentException: Fatal Error from EJB Compiler -- -- Error while processing CMP beans.
    at com.iplanet.ias.deployment.backend.EJBCompiler.wrapException(EJBCompiler.java:589)
    at com.iplanet.ias.deployment.backend.EJBCompiler.compile(EJBCompiler.java:186)
    at com.iplanet.ias.deployment.backend.EjbModuleDeployer.runEJBC(EjbModuleDeployer.java:246)
    at com.iplanet.ias.deployment.backend.EjbModuleDeployer.deploy(EjbModuleDeployer.java:128)
    at com.iplanet.ias.deployment.backend.ModuleDeployer.doRequest(ModuleDeployer.java:77)
    at com.iplanet.ias.admin.server.core.mbean.config.ManagedServerInstance.deployEJBJarModuleArchiveOrDirectory(ManagedServerInstance.java:890)
    at com.iplanet.ias.admin.server.core.mbean.config.ManagedServerInstance.deployEJBJarModule(ManagedServerInstance.java:841)
    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 com.iplanet.ias.admin.server.core.jmx.Introspector.invokeMethodOn(Introspector.java:188)
    at com.iplanet.ias.admin.server.core.jmx.MBeanServerImpl.invoke(MBeanServerImpl.java:137)
    at com.iplanet.ias.admin.server.core.jmx.ASMBeanServerImpl.invoke(ASMBeanServerImpl.java:222)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.callInvoke(AdminAPIEntryServlet.java:217)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.callMBean(AdminAPIEntryServlet.java:176)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.doGet(AdminAPIEntryServlet.java:101)
    at com.iplanet.ias.admin.server.core.servlet.AdminAPIEntryServlet.doPost(AdminAPIEntryServlet.java:83)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at org.apache.catalina.core.StandardWrapperValve.invokeServletService(StandardWrapperValve.java:720)
    at org.apache.catalina.core.StandardWrapperValve.access$000(StandardWrapperValve.java:118)
    at org.apache.catalina.core.StandardWrapperValve$1.run(StandardWrapperValve.java:278)
    at java.security.AccessController.doPrivileged(Native Method)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:274)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:212)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:203)
    at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:505)
    at com.iplanet.ias.web.connector.nsapi.NSAPIProcessor.process(NSAPIProcessor.java:157)
    at com.iplanet.ias.web.WebContainer.service(WebContainer.java:598)
    Caused by: com.iplanet.ias.ejb.codegen.CmpCompilerException: Error while processing CMP beans.
    at com.iplanet.ias.ejb.codegen.CmpCompiler.compile(CmpCompiler.java:198)
    at com.iplanet.ias.ejb.codegen.IASEJBC.ejbc(IASEJBC.java:1029)
    at com.iplanet.ias.deployment.backend.EJBCompiler.preDeployModule(EJBCompiler.java:464)
    at com.iplanet.ias.deployment.backend.EJBCompiler.compile(EJBCompiler.java:181)
    ... 30 more
    Caused by: javax.ejb.EJBException: CMRFieldInfo not found for field identificacaoPai
    at com.iplanet.ias.persistence.internal.ejb.ejbc.JDOCodeGenerator.generate(JDOCodeGenerator.java:264)
    at com.iplanet.ias.ejb.codegen.CmpCompiler.compile(CmpCompiler.java:155)
    ... 33 more
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: get connection
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: create connection
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: opening socket to [192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: server suggested 127.0.0.1:62189
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: using 192.168.200.9:0
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: create call context
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: outbound call: [endpoint:[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5](remote),objID:[0:0:0, 2]] : sun.rmi.transport.DGCImpl_Stub[0:0:0, 2]: java.rmi.dgc.Lease dirty(java.rmi.server.ObjID[], long, java.rmi.dgc.Lease)
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: write remote call header...
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: getting output stream
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: execute call
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: getting input stream
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: name = "java.rmi.dgc.Lease", codebase = ""
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: (thread context class loader: sun.misc.Launcher$AppClassLoader@a56a7c)
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: class "java.rmi.dgc.Lease" found via codebase, defined by null
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: name = "java.rmi.dgc.VMID", codebase = ""
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: (thread context class loader: sun.misc.Launcher$AppClassLoader@a56a7c)
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: class "java.rmi.dgc.VMID" found via codebase, defined by null
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: name = "[B", codebase = "" 
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: (thread context class loader: sun.misc.Launcher$AppClassLoader@a56a7c)
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: class "[B" found via codebase, defined by null 
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: name = "java.rmi.server.UID", codebase = ""
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: (thread context class loader: sun.misc.Launcher$AppClassLoader@a56a7c)
    [14/May/2003:12:23:33] FINER ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: class "java.rmi.server.UID" found via codebase, defined by null
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: free connection (reuse = true)
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: reuse connection
    [14/May/2003:12:23:33] FINE ( 3132): RMI RenewClean-[192.168.200.9:40873,com.iplanet.ias.admin.server.core.channel.LocalRMIClientSocketFactory@6fdca5]: create reaper
    my ejb-jar:
              <ejb-relation>
                   <ejb-relation-name>Identificacao-Identificacoes</ejb-relation-name>
                   <ejb-relationship-role>
                        <ejb-relationship-role-name>Identificacao-has-identificacoes</ejb-relationship-role-name>
                        <multiplicity>One</multiplicity>
                        <relationship-role-source>
                             <ejb-name>Identificacao</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>identificacoes</cmr-field-name>
                             <cmr-field-type>java.util.Collection</cmr-field-type>
                        </cmr-field>
                   </ejb-relationship-role>
                   <ejb-relationship-role>
                        <ejb-relationship-role-name>identificacoes-owned-by-Identificacao</ejb-relationship-role-name>
                        <multiplicity>Many</multiplicity>
                        <relationship-role-source>
                             <ejb-name>Identificacao</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>identificacaoPai</cmr-field-name>
                        </cmr-field>
                   </ejb-relationship-role>
              </ejb-relation>
    my sun-cmp-mappgins
                   <cmr-field-mapping>
                        <cmr-field-name>resposta</cmr-field-name>
                        <column-pair>
                             <column-name>IDENTIFICACAO.ID_RESPOSTA</column-name>
                             <column-name>RESPOSTA.ID_RESPOSTA</column-name>
                        </column-pair>
                   </cmr-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>identificacaoPai</cmr-field-name>
                        <column-pair>
                             <column-name>IDENTIFICACAO.ID_IDENTIFICACAO_PAI</column-name>
                             <column-name>IDENTIFICACAO.ID_IDENTIFICACAO</column-name>
                        </column-pair>
                   </cmr-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>identificacoes</cmr-field-name>
                        <column-pair>
                             <column-name>IDENTIFICACAO.ID_IDENTIFICACAO</column-name>
                             <column-name>IDENTIFICACAO.ID_IDENTIFICACAO_PAI</column-name>
                        </column-pair>
                   </cmr-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>parse</cmr-field-name>
                        <column-pair>
                             <column-name>IDENTIFICACAO.ID_PARSE</column-name>
                             <column-name>PARSE.ID_PARSE</column-name>
                        </column-pair>
                   </cmr-field-mapping>
    somebody already got this exception?

    This question is identical to the thread=19208 and 19209.
    Please do not duplicate the threads.
    Regards,
    Marina

  • JDO & CMP Non-sensical Failures & Errors

    I have an ejb-jar project I'm working on creating with the SJAS 8.1 build b41-fcs.
    Attempting to deploy gives me the following sensless error.
         [exec] JDO72313: The field person must be consistently defined as either a CMP field or a CMR.
         [exec] Please check for an inconsistency in your module contents (beans, deployment descriptor, cmp-mapping, ejb-jar).
         [exec] JDO74025: JDOCodeGenerator: Caught an Exception validating CMP bean 'PersonBean' in application 'UmcBase' module 'UmcBase': JDO72326: The field thisRelationshipFieldWasGeneratedByTheNameMapper1 has an invalid related field person.  Related fields must be set for both relationship fields.
         [exec] Make sure the CMR field is set on both sides of the relation.I have checked, double-checked, triple-checked, etc. The definition is consistant.
    Further, the relationship is currently mapped as a one-way relationship. It shouldn't be defined on the other side at this point in time.
    I decided to try re-mapping the files with deploytool (a "tool" I try to avoid like the plague) and get the following error message from deploy tool:
    JDO7704: This error (In DatabaseGenerator, failed to get 'relMappingClass' for 'byte[]') should not occur. Please contact support and file a bug.Oh freakin' great.
    Any suggestions? I sorta need this to work.

    Absolutely.
    sun-cmp-mappings.xml
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE sun-cmp-mappings PUBLIC "-//Sun Microsystems, Inc.//DTD Application Server 8.0 OR Mapping//EN" "http://www.sun.com/software/appserver/dtds/sun-cmp-mapping_1_1.dtd">
    <sun-cmp-mappings>
         <sun-cmp-mapping>
              <schema/>
    <!-- BeanKeyBean -->
              <entity-mapping>
                   <ejb-name>BeanKeyBean</ejb-name>
                   <table-name>BeanKey</table-name>
                   <cmp-field-mapping>
                        <field-name>beanName</field-name>
                        <column-name>BeanKey.beanName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>nextId</field-name>
                        <column-name>BeanKey.nextId</column-name>
                   </cmp-field-mapping>
              </entity-mapping>
    <!-- PreferenceDataBean -->
              <entity-mapping>
                   <ejb-name>PreferenceDataBean</ejb-name>
                   <table-name>PreferenceData</table-name>
                   <cmp-field-mapping>
                        <field-name>dataId</field-name>
                        <column-name>PreferenceData.preferenceDataId</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>keyName</field-name>
                        <column-name>PreferenceData.keyName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>objectValue</field-name>
                        <column-name>PreferenceData.data</column-name>
                   </cmp-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>node</cmr-field-name>
                        <column-pair>
                             <column-name>PreferenceData.preferenceNodeId</column-name>
                             <column-name>PreferenceNode.preferenceNodeId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
              </entity-mapping>
    <!-- PreferenceNodeBean -->
              <entity-mapping>
                   <ejb-name>PreferenceNodeBean</ejb-name>
                   <table-name>PreferenceNode</table-name>
                   <cmp-field-mapping>
                        <field-name>name</field-name>
                        <column-name>PreferenceNode.nodeName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>nodeId</field-name>
                        <column-name>PreferenceNode.preferenceNodeId</column-name>
                   </cmp-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>parentNode</cmr-field-name>
                        <column-pair>
                             <column-name>PreferenceNode.parentNodeId</column-name>
                             <column-name>PreferenceNode.preferenceNodeId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>children</cmr-field-name>
                        <column-pair>
                             <column-name>PreferenceNode.preferenceNodeId</column-name>
                             <column-name>PreferenceNode.parentNodeId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>data</cmr-field-name>
                        <column-pair>
                             <column-name>PreferenceNode.preferenceNodeId</column-name>
                             <column-name>PreferenceData.preferenceNodeId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
              </entity-mapping>
    <!-- PersonBean -->
              <entity-mapping>
                   <ejb-name>PersonBean</ejb-name>
                   <table-name>Person</table-name>
                   <cmp-field-mapping>
                        <field-name>dateOfBirthDb</field-name>
                        <column-name>Person.dateOfBirth</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>firstNameDb</field-name>
                        <column-name>Person.firstName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>gender</field-name>
                        <column-name>Person.gender</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>lastNameDb</field-name>
                        <column-name>Person.lastName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>middleNameDb</field-name>
                        <column-name>Person.middleName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>personId</field-name>
                        <column-name>Person.personId</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>salutation</field-name>
                        <column-name>Person.salutation</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>suffix</field-name>
                        <column-name>Person.suffix</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>activeDb</field-name>
                        <column-name>Person.active</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>hashKey</field-name>
                        <column-name>Person.hashKey</column-name>
                   </cmp-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>personUser</cmr-field-name>
                        <column-pair>
                             <column-name>Person.personId</column-name>
                             <column-name>PersonUser.personId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>groups</cmr-field-name>
                        <column-pair>
                             <column-name>Person.personId</column-name>
                             <column-name>PersonGroup.personId</column-name>
                        </column-pair>
                        <column-pair>
                             <column-name>PersonGroup.groupId</column-name>
                             <column-name>Groups.groupId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
              </entity-mapping>
    <!-- PersonUserBean -->
              <entity-mapping>
                   <ejb-name>PersonUserBean</ejb-name>
                   <table-name>PersonUser</table-name>
                   <cmp-field-mapping>
                        <field-name>personId</field-name>
                        <column-name>PersonUser.personId</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>loginName</field-name>
                        <column-name>PersonUser.loginName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>passwordHash</field-name>
                        <column-name>PersonUser.passwordHash</column-name>
                   </cmp-field-mapping>
              </entity-mapping>
    <!-- GroupBean -->
              <entity-mapping>
                   <ejb-name>GroupBean</ejb-name>
                   <table-name>Groups</table-name>
                   <cmp-field-mapping>
                        <field-name>groupId</field-name>
                        <column-name>Groups.groupId</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>name</field-name>
                        <column-name>Groups.groupName</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>description</field-name>
                        <column-name>Groups.description</column-name>
                   </cmp-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>groupMembers</cmr-field-name>
                        <column-pair>
                             <column-name>Groups.groupId</column-name>
                             <column-name>PersonGroup.groupId</column-name>
                        </column-pair>
                        <column-pair>
                             <column-name>PersonGroup.personId</column-name>
                             <column-name>Person.personId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
              </entity-mapping>
    <!-- CountryBean -->
              <entity-mapping>
                   <ejb-name>CountryBean</ejb-name>
                   <table-name>Country</table-name>
                   <cmp-field-mapping>
                        <field-name>countryCode</field-name>
                        <column-name>Country.code</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>name</field-name>
                        <column-name>Country.name</column-name>
                   </cmp-field-mapping>
              </entity-mapping>
    <!-- StateProvinceBean -->
              <entity-mapping>
                   <ejb-name>StateProvinceBean</ejb-name>
                   <table-name>StateProvince</table-name>
                   <cmp-field-mapping>
                        <field-name>stateProvinceCode</field-name>
                        <column-name>StateProvince.code</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>name</field-name>
                        <column-name>StateProvince.name</column-name>
                   </cmp-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>country</cmr-field-name>
                        <column-pair>
                             <column-name>StateProvince.country</column-name>
                             <column-name>Country.code</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
              </entity-mapping>
    <!-- SecurityQuestionBean -->
              <entity-mapping>
                   <ejb-name>SecurityQuestionBean</ejb-name>
                   <table-name>SecurityQuestion</table-name>
                   <cmp-field-mapping>
                        <field-name>securityQuestionId</field-name>
                        <column-name>SecurityQuestion.securityQuestionId</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>type</field-name>
                        <column-name>SecurityQuestion.type</column-name>
                   </cmp-field-mapping>
                   <cmp-field-mapping>
                        <field-name>answer</field-name>
                        <column-name>SecurityQuestion.answer</column-name>
                   </cmp-field-mapping>
                   <cmr-field-mapping>
                        <cmr-field-name>person</cmr-field-name>
                        <column-pair>
                             <column-name>SecurityQuestion.personId</column-name>
                             <column-name>Person.personId</column-name>
                        </column-pair>
                        <fetched-with>
                             <none/>
                        </fetched-with>
                   </cmr-field-mapping>
              </entity-mapping>
         </sun-cmp-mapping>
    </sun-cmp-mappings>ejb-jar.xml (Entire thing, so you get the full picture)
    <?xml version="1.0" encoding="UTF-8"?>
    <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee" version="2.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd">
         <display-name>UMCBaseJAR</display-name>
         <enterprise-beans>
    <!-- BeanKeyBean  (Holds nextId values for other CMP Beans) -->
              <entity>
                   <ejb-name>BeanKeyBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.beanKey.BeanKeyLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.beanKey.BeanKeyLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.beanKey.BeanKeyBean</ejb-class>
                   <persistence-type>Container</persistence-type>
                   <prim-key-class>java.lang.String</prim-key-class>
                   <reentrant>false</reentrant>
                   <cmp-version>2.x</cmp-version>
                   <abstract-schema-name>BeanKey</abstract-schema-name>
                   <cmp-field>
                        <field-name>beanName</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>nextId</field-name>
                   </cmp-field>
                   <primkey-field>beanName</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
              </entity>
    <!-- PreferenceDataBean -->
              <entity>
                   <ejb-name>PreferenceDataBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.preferenceData.PreferenceDataLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.preferenceData.PreferenceDataLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.preferenceData.PreferenceDataBean</ejb-class>
                   <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>PreferenceData</abstract-schema-name>
                   <cmp-field>
                        <field-name>objectValue</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>keyName</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>dataId</field-name>
                   </cmp-field>
                   <primkey-field>dataId</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
                   <query>
                        <query-method>
                             <method-name>findDataForNode</method-name>
                             <method-params>
                                  <method-param>edu.umc.umcBase.bean.ejb.preferenceNode.PreferenceNodeLocal</method-param>
                                  <method-param>java.lang.String</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT DISTINCT OBJECT(d) FROM PreferenceData AS d WHERE d.node = ?1 AND d.keyName = ?2</ejb-ql>
                   </query>
                   <query>
                        <query-method>
                             <method-name>findDataForNode</method-name>
                             <method-params>
                                  <method-param>edu.umc.umcBase.bean.ejb.preferenceNode.PreferenceNodeLocal</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(d) FROM PreferenceData AS d WHERE d.node = ?1</ejb-ql>
                   </query>
              </entity>
    <!-- PreferenceNodeBean -->
              <entity>
                   <ejb-name>PreferenceNodeBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.preferenceNode.PreferenceNodeLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.preferenceNode.PreferenceNodeLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.preferenceNode.PreferenceNodeBean</ejb-class>
                   <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>PreferenceNode</abstract-schema-name>
                   <cmp-field>
                        <field-name>nodeId</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>name</field-name>
                   </cmp-field>
                   <primkey-field>nodeId</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
                   <query>
                        <query-method>
                             <method-name>findRoot</method-name>
                             <method-params/>
                        </query-method>
                        <ejb-ql>SELECT DISTINCT OBJECT(p) FROM PreferenceNode p WHERE p.name = '/'</ejb-ql>
                   </query>
                   <query>
                        <query-method>
                             <method-name>findByName</method-name>
                             <method-params>
                                  <method-param>java.lang.String</method-param>
                                  <method-param>edu.umc.umcBase.bean.ejb.preferenceNode.PreferenceNodeLocal</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT DISTINCT OBJECT(p) FROM PreferenceNode AS p WHERE p.name = ?1 AND p.parentNode = ?2</ejb-ql>
                   </query>
              </entity>
    <!-- PersonBean -->
              <entity>
                   <ejb-name>PersonBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.person.PersonLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.person.PersonLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.person.PersonBean</ejb-class>
                   <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>Person</abstract-schema-name>
                   <cmp-field>
                        <field-name>gender</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>dateOfBirthDb</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>suffix</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>salutation</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>middleNameDb</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>personId</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>firstNameDb</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>lastNameDb</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>activeDb</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>hashKey</field-name>
                   </cmp-field>
                   <primkey-field>personId</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
                   <query>
                        <query-method>
                             <method-name>findAll</method-name>
                             <method-params/>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(p) FROM Person AS p</ejb-ql>
                   </query>
                   <query>
                        <query-method>
                             <method-name>findByLoginName</method-name>
                             <method-params>
                                  <method-param>java.lang.String</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(p) FROM Person AS p WHERE p.personUser.loginName = ?1</ejb-ql>
                   </query>
                   <query>
                        <query-method>
                             <method-name>findByLastName</method-name>
                             <method-params>
                                  <method-param>java.lang.String</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(p) FROM Person AS p WHERE p.lastNameDb LIKE ?1</ejb-ql>
                   </query>
                   <query>
                        <query-method>
                             <method-name>findByFirstName</method-name>
                             <method-params>
                                  <method-param>java.lang.String</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(p) FROM Person AS p WHERE p.firstNameDb LIKE ?1</ejb-ql>
                   </query>
                   <query>
                        <query-method>
                             <method-name>findByLastFirstName</method-name>
                             <method-params>
                                  <method-param>java.lang.String</method-param>
                                  <method-param>java.lang.String</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(p) FROM Person AS p WHERE p.lastNameDb LIKE ?1 AND p.firstNameDb LIKE ?2</ejb-ql>
                   </query>
              </entity>
    <!-- PersonUserBean -->
              <entity>
                   <ejb-name>PersonUserBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.person.PersonUserLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.person.PersonUserLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.person.PersonUserBean</ejb-class>
                   <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>PersonUser</abstract-schema-name>
                   <cmp-field>
                        <field-name>loginName</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>passwordHash</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>personId</field-name>
                   </cmp-field>
                   <primkey-field>personId</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
              </entity>
    <!-- GroupBean -->
              <entity>
                   <ejb-name>GroupBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.group.GroupLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.group.GroupLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.group.GroupBean</ejb-class>
                   <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>Group</abstract-schema-name>
                   <cmp-field>
                        <field-name>groupId</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>name</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>description</field-name>
                   </cmp-field>
                   <primkey-field>groupId</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
                   <query>
                        <query-method>
                             <method-name>findAll</method-name>
                             <method-params/>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(g) FROM Group g</ejb-ql>
                   </query>
                   <query>
                        <query-method>
                             <method-name>findByName</method-name>
                             <method-params>
                                  <method-param>java.lang.String</method-param>
                             </method-params>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(g) FROM Group AS g WHERE g.name = ?1</ejb-ql>
                   </query>
              </entity>
    <!-- CountryBean -->
              <entity>
                   <ejb-name>CountryBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.country.CountryLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.country.CountryLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.country.CountryBean</ejb-class>
                   <persistence-type>Container</persistence-type>
                   <prim-key-class>java.lang.String</prim-key-class>
                   <reentrant>false</reentrant>
                   <cmp-version>2.x</cmp-version>
                   <abstract-schema-name>Country</abstract-schema-name>
                   <cmp-field>
                        <field-name>countryCode</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>name</field-name>
                   </cmp-field>
                   <primkey-field>countryCode</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
                   <query>
                        <query-method>
                             <method-name>findAll</method-name>
                             <method-params/>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(c) FROM Country AS c</ejb-ql>
                   </query>
              </entity>
    <!-- StateProvinceBean -->
              <entity>
                   <ejb-name>StateProvinceBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.stateProvince.StateProvinceLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.stateProvince.StateProvinceLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.stateProvince.StateProvinceBean</ejb-class>
                   <persistence-type>Container</persistence-type>
                   <prim-key-class>java.lang.String</prim-key-class>
                   <reentrant>false</reentrant>
                   <cmp-version>2.x</cmp-version>
                   <abstract-schema-name>StateProvince</abstract-schema-name>
                   <cmp-field>
                        <field-name>stateProvinceCode</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>name</field-name>
                   </cmp-field>
                   <primkey-field>stateProvinceCode</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
                   <query>
                        <query-method>
                             <method-name>findAll</method-name>
                             <method-params/>
                        </query-method>
                        <ejb-ql>SELECT OBJECT(sp) FROM StateProvince AS sp</ejb-ql>
                   </query>
              </entity>
    <!-- SecurityQuestionBean -->
              <entity>
                   <ejb-name>SecurityQuestionBean</ejb-name>
                   <local-home>edu.umc.umcBase.bean.ejb.securityQuestion.SecurityQuestionLocalHome</local-home>
                   <local>edu.umc.umcBase.bean.ejb.securityQuestion.SecurityQuestionLocal</local>
                   <ejb-class>edu.umc.umcBase.bean.ejb.securityQuestion.SecurityQuestionBean</ejb-class>
                   <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>SecurityQuestion</abstract-schema-name>
                   <cmp-field>
                        <field-name>securityQuestionId</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>type</field-name>
                   </cmp-field>
                   <cmp-field>
                        <field-name>answer</field-name>
                   </cmp-field>
                   <primkey-field>securityQuestionId</primkey-field>
                   <resource-ref>
                        <res-ref-name>jdo/UMCBASE</res-ref-name>
                        <res-type>javax.sql.DataSource</res-type>
                        <res-auth>Container</res-auth>
                        <res-sharing-scope>Shareable</res-sharing-scope>
                   </resource-ref>
                   <security-identity>
                        <use-caller-identity/>
                   </security-identity>
              </entity>
         </enterprise-beans>
         <relationships>
    <!-- PreferenceNode - PreferenceNode -->
              <ejb-relation>
                   <ejb-relationship-role>
                        <multiplicity>One</multiplicity>
                        <relationship-role-source>
                             <ejb-name>PreferenceNodeBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>children</cmr-field-name>
                             <cmr-field-type>java.util.Collection</cmr-field-type>
                        </cmr-field>
                   </ejb-relationship-role>
                   <ejb-relationship-role>
                        <multiplicity>Many</multiplicity>
                        <relationship-role-source>
                             <ejb-name>PreferenceNodeBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>parentNode</cmr-field-name>
                        </cmr-field>
                   </ejb-relationship-role>
              </ejb-relation>
    <!-- PreferenceNode - PreferenceData -->
              <ejb-relation>
                   <ejb-relationship-role>
                        <multiplicity>One</multiplicity>
                        <relationship-role-source>
                             <ejb-name>PreferenceNodeBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>data</cmr-field-name>
                             <cmr-field-type>java.util.Collection</cmr-field-type>
                        </cmr-field>
                   </ejb-relationship-role>
                   <ejb-relationship-role>
                        <multiplicity>Many</multiplicity>
                        <cascade-delete/>
                        <relationship-role-source>
                             <ejb-name>PreferenceDataBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>node</cmr-field-name>
                        </cmr-field>
                   </ejb-relationship-role>
              </ejb-relation>
    <!-- Person - PersonUser -->
              <ejb-relation>
                   <ejb-relationship-role>
                        <multiplicity>One</multiplicity>
                        <relationship-role-source>
                             <ejb-name>PersonBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>personUser</cmr-field-name>
                        </cmr-field>
                   </ejb-relationship-role>
                   <ejb-relationship-role>
                        <multiplicity>One</multiplicity>
                        <cascade-delete/>
                        <relationship-role-source>
                             <ejb-name>PersonUserBean</ejb-name>
                        </relationship-role-source>
                   </ejb-relationship-role>
              </ejb-relation>
    <!-- Group - Person -->
              <ejb-relation>
                   <ejb-relationship-role>
                        <multiplicity>Many</multiplicity>
                        <relationship-role-source>
                             <ejb-name>GroupBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>groupMembers</cmr-field-name>
                             <cmr-field-type>java.util.Collection</cmr-field-type>
                        </cmr-field>
                   </ejb-relationship-role>
                   <ejb-relationship-role>
                        <multiplicity>Many</multiplicity>
                        <relationship-role-source>
                             <ejb-name>PersonBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>groups</cmr-field-name>
                             <cmr-field-type>java.util.Collection</cmr-field-type>
                        </cmr-field>
                   </ejb-relationship-role>
              </ejb-relation>
    <!-- StateProvinceBean - Country -->
              <ejb-relation>
                   <ejb-relationship-role>
                        <multiplicity>Many</multiplicity>
                        <cascade-delete/>
                        <relationship-role-source>
                             <ejb-name>StateProvinceBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>country</cmr-field-name>
                        </cmr-field>
                   </ejb-relationship-role>
                   <ejb-relationship-role>
                        <multiplicity>One</multiplicity>
                        <relationship-role-source>
                             <ejb-name>CountryBean</ejb-name>
                        </relationship-role-source>
                   </ejb-relationship-role>
              </ejb-relation>
    <!-- SecurityQuestion - Person -->
              <ejb-relation>
                   <ejb-relationship-role>
                        <multiplicity>Many</multiplicity>
                        <cascade-delete/>
                        <relationship-role-source>
                             <ejb-name>SecurityQuestionBean</ejb-name>
                        </relationship-role-source>
                        <cmr-field>
                             <cmr-field-name>person</cmr-field-name>
                        </cmr-field>
                   </ejb-relationship-role>
                   <ejb-relationship-role>
                        <multiplicity>One</multiplicity>
                        <relationship-role-source>
                             <ejb-name>PersonBean</ejb-name>
                        </relationship-role-source>
                   </ejb-relationship-role>
              </ejb-relation>
         </relationships>
    <!-- Transactions -->
         <assembly-descriptor>
              <!-- BeanKey -->
              <container-transaction>
                   <method>
                        <ejb-name>BeanKeyBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- PreferenceDataBean -->
              <container-transaction>
                   <method>
                        <ejb-name>PreferenceDataBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- PreferenceNodeBean -->
              <container-transaction>
                   <method>
                        <ejb-name>PreferenceNodeBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- PersonBean -->
              <container-transaction>
                   <method>
                        <ejb-name>PersonBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- PersonUserBean -->
              <container-transaction>
                   <method>
                        <ejb-name>PersonUserBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- GroupBean -->
              <container-transaction>
                   <method>
                        <ejb-name>GroupBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- CountryBean -->
              <container-transaction>
                   <method>
                        <ejb-name>CountryBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- StateProvinceBean -->
              <container-transaction>
                   <method>
                        <ejb-name>StateProvinceBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
              <!-- SecurityQuestionBean -->
              <container-transaction>
                   <method>
                        <ejb-name>SecurityQuestionBean</ejb-name>
                        <method-name>*</method-name>
                   </method>
                   <trans-attribute>Required</trans-attribute>
              </container-transaction>
         </assembly-descriptor>
    </ejb-jar>Everything deploys perfectly cleanly, passes all verification tests, etc until I try to add SecurityQuestion and relate it to the person. I've tried uni-directional relationships, bi-directional relationships, everything I could think of. I've read the ejb 2.1 spec backwards and forwards trying to figure out if this was something I did or not.
    Finally I decided I'm not going to find it... so hopefully someone else's eyeballs will.
    Thanks.

Maybe you are looking for