如何使用ejbGen为weblogic生成部署描述符?

时间:2010-09-22 05:20:08

标签: deployment weblogic descriptor

我正在阅读本页的教程:
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
}

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);

我运行java weblogic.tools.ejbgen.EJBGen -ddOnlyGen BankAccountEJB.java,它会产生以下错误:

线程“main”中的异常com.bea.wls.ejbgen.EJBGenException:ejbName是必需属性  在com.bea.wls.ejbgen.Bean.createBeanSpecificTags(Bean.java:202)  在com.bea.wls.ejbgen.Bean。(Bean.java:127)  在com.bea.wls.ejbgen.EntityBean。(EntityBean.java:76)  在com.bea.wls.ejbgen.EJBFactory.createBean(EJBFactory.java:135)  在com.bea.wls.ejbgen.EJBFactory.createBean(EJBFactory.java:99)  在com.bea.wls.ejbgen.EJBGenSGen.initModule(EJBGenSGen.java:106)  在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)

任何输入都将非常感谢〜!

1 个答案:

答案 0 :(得分:2)

注意:您是否仍在运行Weblogic 8.1 - 它已经达到使用寿命。 ejbgen也与EJB 2.x合作,在过去的两年中,开发已经转移到EJB 3 ,所以我建议你赶上它们。

现在针对您的具体问题。

您的代码似乎没有ejbgen工作所需的注释。

这样的注释用于生成描述符。

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

正如您的网址所说,教程中的代码将正确的数据作为示例 - 请确保您在自己的代码中正确复制这些代码。

  

EJBGen在bean中使用注释   文件以生成部署   描述符文件和EJB Java   源文件。 MedRec中的EJB文件   应用程序已经注释   的EJBGen。

对于另一版本的ejbgen,请参阅http://www.beust.com/ejbgen/