2010-09-22 104 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/