OK, I did change everything to have fully qualified names, and that
eliminated one of the 2 issues I am having. So, here is the second issue I
am still having.

On deployment, I get this error:
=================================
[java] Role 'AutomaticPaymentAccount-belongs_to-BusinessCard' of
relationship 'BusinessCard-AutomaticPaymentBankAccount' contains an
invalid key-column value of 'automaticPaymentAccountFK'. The
key-column must specify a primary key column in the related bean.
However, there is no primary key column named 'automaticPaymentAccountFK'
defined in
the related bean 'BusinessCard' or else 'automaticPaymentAccountFK'
is not being recognized due to case mismatch.

     [java] .
     [java]     at
weblogic.ejb20.persistence.PersistenceType.setTypeSpecificFile(PersistenceTy
pe.java:526)
     [java]     at
weblogic.ejb20.persistence.PersistenceType.setupDeployer(PersistenceType.jav
a:414)
     [java]     at
weblogic.ejb20.deployer.CMPInfoImpl.setup(CMPInfoImpl.java:110)
     [java]     at
weblogic.ejb20.ejbc.EJB20CMPCompiler.generatePersistenceSources(EJB20CMPComp
iler.java:64)
     [java]     at
weblogic.ejb20.ejbc.EJBCompiler.doCompile(EJBCompiler.java:245)
     [java]     at
weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:476)
     [java]     at
weblogic.ejb20.ejbc.EJBCompiler.compileEJB(EJBCompiler.java:407)
     [java]     at
weblogic.ejb20.deployer.EJBDeployer.runEJBC(EJBDeployer.java:493)
     [java]     at
weblogic.ejb20.deployer.EJBDeployer.compileJar(EJBDeployer.java:763)
     [java]     at
weblogic.ejb20.deployer.EJBDeployer.compileIfNecessary(EJBDeployer.java:701)
     [java]     at
weblogic.ejb20.deployer.EJBDeployer.prepare(EJBDeployer.java:1277)
     [java]     at
weblogic.ejb20.deployer.EJBModule.prepare(EJBModule.java:477)
     [java]     at
weblogic.j2ee.J2EEApplicationContainer.prepareModule(J2EEApplicationContaine
r.java:2962)
     [java]     at
weblogic.j2ee.J2EEApplicationContainer.prepareModules(J2EEApplicationContain
er.java:1534)
     [java]     at
weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java
:1188)
     [java]     at
weblogic.j2ee.J2EEApplicationContainer.prepare(J2EEApplicationContainer.java
:1031)
     [java]     at
weblogic.management.deploy.slave.SlaveDeployer$ComponentActivateTask.prepare
Container(SlaveDeployer.java:2602)
     [java]     at
weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.createContainer(
SlaveDeployer.java:2552)
     [java]     at
weblogic.management.deploy.slave.SlaveDeployer$ActivateTask.prepare(SlaveDep
loyer.java:2474)
     [java]     at
weblogic.management.deploy.slave.SlaveDeployer.processPrepareTask(SlaveDeplo
yer.java:798)
     [java]     at
weblogic.management.deploy.slave.SlaveDeployer.prepareDelta(SlaveDeployer.ja
va:507)
     [java]     at
weblogic.management.deploy.slave.SlaveDeployer.prepareUpdate(SlaveDeployer.j
ava:465)
     [java]     at
weblogic.drs.internal.SlaveCallbackHandler$1.execute(SlaveCallbackHandler.ja
va:25)
     [java]     at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:197)
     [java]     at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:170)


Here is my BusinessCardBean.java pertinent items:
=================================================
    /**
     * Retrieve the BusinessCard's businessCardPK for use as a primaryKey.
     *
     * @ejb.pk-field
     * @ejb.interface-method
     * @ejb.persistence column-name="productPK"
     **/
    public abstract java.lang.String getProductPK();

    /**
     * No interface method for setBusinessCardPK(..). See page 130 of the
EJB 2.0 specification:
     * "Once the primary key for an entity bean has been set, the Bean
Provider must
     * not attempt to change it by use of set accessor methods on the
primary key
     * cmp-fields. The Bean provider should therefore not expose the set
accessor
     * methods for the primary key cmp-fields in the component interface of
the
     * entity bean.". A work around would be to remove and then an re-create
the bean.
     */
    public abstract void setProductPK( java.lang.String pProductPK );

    /**
      * Manage the BusinessCard's automaticPayment
      *
      * @ejb.interface-method
      * @ejb.persistence column-name="automaticPaymentAccountFK"
      **/
     public abstract java.lang.String getAutomaticPaymentAccountFK();
     public abstract void setAutomaticPaymentAccountFK( java.lang.String
pAutomaticPaymentAccountFK );



    /**
         *  This is a one (BusinessCard) to one (BankAccount) relationship.
         *  We can get a BankerDto in the
BusinessCardDto.getAutomaticPaymentAccount() method.
         *  We can also setAutomaticPaymentAccount( pBankAccount )
         *
         * @ejb.interface-method
         *      view-type="local"
         *
     * @ --ejb.value-object
     *      --compose="com.wf.bd.ice.account.BankAccountDto"
     *      --compose-name="AutomaticPaymentAccountDto"
     *      --members="com.wf.bd.ice.account.BankAccountLocal"
     *      --members-name="AutomaticPaymentAccount"
     *      --relation="external"
     *
     * @ejb.relation
     *      name="BusinessCard-AutomaticPaymentBankAccount"
     *      role-name="BusinessCard-has-AutomaticPaymentAccount"
         *      target-ejb="BankAccount"
         *
target-role-name="AutomaticPaymentAccount-belongs_to-BusinessCard"
         *      target-cascade-delete="yes"
         *
         * @weblogic.target-column-map
         *      foreign-key-column="bankAccountPK"
     *      key-column="automaticPaymentAccountFK"
     **/
    public abstract com.wf.bd.ice.account.BankAccountLocal
getAutomaticPaymentAccount();
    public abstract void setAutomaticPaymentAccount(
com.wf.bd.ice.account.BankAccountLocal pAutomaticPaymentAccount );





And here is all that is in my BankAccountBean.java of interest:
===============================================================
    /**
     * Retrieve the BankAccount's bankAccountPK for use as a primaryKey.
     *
     * @ejb.pk-field
     * @ejb.interface-method
     * @ejb.persistence column-name="bankAccountPK"
     **/
    public abstract String getBankAccountPK();

    /**
     * No interface method for setBankAccountPK(..). See page 130 of the EJB
2.0 specification:
     * "Once the primary key for an entity bean has been set, the Bean
Provider must
     * not attempt to change it by use of set accessor methods on the
primary key
     * cmp-fields. The Bean provider should therefore not expose the set
accessor
     * methods for the primary key cmp-fields in the component interface of
the
     * entity bean.". A work around would be to remove and then an re-create
the bean.
     */
    public abstract void setBankAccountPK( String pBankAccountPK );


    /**
     * Manage the BankAccount's DTO/Form object
     *
         *  This method needs to be implemented because Product EJB's use it
to access
         *  the BankAccountDto object for the AutomaticPaymentAccount
object.
         *
     * @ejb.interface-method
     **/
    public abstract com.wf.bd.ice.account.BankAccountDto
getAutomaticPaymentAccountDto();

    /**
     * @ejb.interface-method
     **/
    public abstract void setAutomaticPaymentAccountDto(
com.wf.bd.ice.account.BankAccountDto pBankAccountDto );




















-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] Behalf Of Harkness,
David
Sent: Thursday, May 20, 2004 4:58 PM
To: [EMAIL PROTECTED]
Subject: RE: [Xdoclet-user] Relationship errors with WLS 8.1...


[EMAIL PROTECTED] wrote:
>      [java] In bean BusinessCard, the abstract method,
> getAutomaticPaymentAccountDto(), does not correspond to any
> container-managed field and is not implemented in the bean
> class or any of its superclasses.

I don't have time to dig further at this point, and I'm not using
XDoclet's value objects, but I've seen this exact error from WebLogic
7.0 for finder methods when I didn't qualify the types. For example, if
I have a signature like "findByName(String name)" it complains. If I
change it to "java.lang.String" all is well. You might try
fully-qualifying all of your method signatures (the DTO accessors
especially since that's what it's complaining about).

David Harkness
Sr. Software Engineer
Sony Pictures Digital Networks
(310) 482-4756


-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g. 
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id66&op=click
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user


-------------------------------------------------------
This SF.Net email is sponsored by: Oracle 10g
Get certified on the hottest thing ever to hit the market... Oracle 10g.
Take an Oracle 10g class now, and we'll give you the exam FREE.
http://ads.osdn.com/?ad_id149&alloc_id66&op=click
_______________________________________________
xdoclet-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/xdoclet-user

Reply via email to