2010-09-22 103 views
1

我阅读此页上的教程:
http://edocs.bea.com/docs/cd/E13222_01/wls/docs81/medrec_tutorials/ejbgen.html#858279如何使用ejbGen for weblogic生成部署描述符?

和我有以下文件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,它会产生以下错误:

线程“main”中的异常com.bea.wls.ejbgen.EJBGenException:ejbName是必需属性 at com.be (Bean.java:127) at 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。 (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)

任何输入将不胜感激〜!

+0

或任何其他方式来生成部署描述符也将非常感谢! – user433500 2010-09-22 05:21:53

回答

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 uses annotations in the bean file to generate the deployment descriptor files and the EJB Java source files. EJB files in the MedRec application are already annotated for EJBGen.

有关的EJBGen的另一个版本,请参阅http://www.beust.com/ejbgen/