我正在阅读本页的教程:
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)
任何输入都将非常感谢〜!
答案 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/