1

このページのチュートリアルを読んでいました:
http://edocs.bea.com/docs/cd/E13222_01/wls/docs81/medrec_tutorials/ejbgen.html#858279

そして、次のファイル BankAccountEJB.java があります

import javax.ejb.CreateException; import javax.ejb.EntityBean; import javax.ejb.EntityContext;

public abstract class BankAccountEJB implements EntityBean {

private EntityContext context;

public void setEntityContext(EntityContext aContext) {
    context = aContext;
}

public void ejbActivate() {

}

public void ejbPassivate() {

}

public void ejbRemove() {

}

public void unsetEntityContext() {
    context = null;
}

public void ejbLoad() {

}

public void ejbStore() {

}

public abstract String getName();

public abstract void setName(String name);

public abstract Float getBalance();

public abstract void setBalance(Float balance);

public java.lang.Long ejbCreate(String name, Float balance)  throws CreateException {
    if (name == null) {
        throw new CreateException("The field \"key\" must not be null");
    }

    // TODO add additional validation code, throw CreateException if data is not valid
    setName(name);

setBalance(balance);

    return null;
}

public void ejbPostCreate(java.lang.Long key) {
    // TODO populate relationships here if appropriate
}

}

java weblogic.tools.ejbgen.EJBGen -ddOnlyGen BankAccountEJB.java を実行すると、次のエラーが発生します。

スレッド「メイン」での例外 com.bea.wls.ejbgen.EJBGenException: ejbName は、com.bea.wls.ejbgen.Bean の com.bea.wls.ejbgen.Bean.createBeanSpecificTags(Bean.java:202) で必須の属性です(Bean.java:127) com.bea.wls.ejbgen.EntityBean。(EntityBean.java:76) com.bea.wls.ejbgen.EJBFactory.createBean(EJBFactory.java:135) com.bea。 com.bea.wls.ejbgen.EJBGenSGen.initModule(EJBGenSGen.java:106) の wls.ejbgen.EJBFactory.createBean(EJBFactory.java:99) com.bea.sgen.SGen.run(SGen.java:205) のcom.bea.wls.ejbgen.EJBGen.main(EJBGen.java:212) com.bea.wls.ejbgen.EJBGen.main(EJBGen.java:238) weblogic.tools.ejbgen.EJBGen.main(EJBGen) .java:21)

どんな入力でも大歓迎です〜!

4

1 に答える 1

2

注:まだ Weblogic 8.1 を実行していますか? 既にサポートが終了しています。また、ejbgen は EJB 2.x で動作し、過去 2 年間で開発は EJB 3 に移行したため、これらに追いつくことをお勧めします。

今あなたの特定の問題に。

あなたのコードには、ejbgen が機能するために必要な注釈がないようです。

記述子の生成に使用されるこのような注釈。

 * @ejbgen:entity
 *   ejb-name = containerManaged
 *   table-name = ejbAccounts
 *   data-source-name = examples-dataSource-demoPool
 *   prim-key-class =  AccountPK
 *   invalidation-target = ServiceDesignEJB

あなたの URL が示すように、チュートリアルのコードにはサンプルとして適切なデータがあります。それらを自分のコードで正しく複製するようにしてください。

EJBGen は、Bean ファイル内のアノテーションを使用して、デプロイメント記述子ファイルと EJB Java ソース ファイルを生成します。MedRec アプリケーションの EJB ファイルには、EJBGen のアノテーションがすでに付けられています。

別のバージョンの ejbgen については、http://www.beust.com/ejbgen/を参照してください。

于 2010-09-23T05:32:18.747 に答える