我有一個包含兩個模塊CC-ejb和CC-war的應用程序(「CC」)。 CC-ejb包含CC-war使用的JPA實體和外牆。此應用程序正常工作。現在我用另外兩個模塊創建另一個(「CINT」):CINT-ejb和CINT-war。在Web模塊中,我需要訪問由CC-ejb提供的對象。我使用NetBeans 7.1進行開發,並使用Glassfish 3.1.1進行部署。無法部署引用其他EJB模塊的Java EE應用程序
在CC-EJB我有一個接口:
/* ... */
import javax.ejb.Local;
@Local
public interface CallDetailsFacadeLocal {
/* ... */
和實現類:
/* ... */
import javax.ejb.Stateless;
import javax.persistence.EntityManager;
/* ... */
import tp.coma.data.entities.CallDetails;
@Stateless
public class CallDetailsFacade
extends AbstractFacade<CallDetails>
implements CallDetailsFacadeLocal {
@PersistenceContext(unitName = "CC-ejbPU")
private EntityManager em;
/* ... */
在CINT戰我指的是在一個我的豆類:
/* ... */
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import tp.coma.data.beans.CallDetailsFacadeLocal;
/* ... */
@ManagedBean(name = "bookingController")
@SessionScoped
public class BookingController implements Serializable {
/* ... */
@EJB
private CallDetailsFacadeLocal cdrFacade;
/* ... */
當部署CINT(CC已經啓動並運行)我得到以下信息:
Error occurred during deployment: Exception while loading the app : java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Ltp/coma/data/beans/CallDetailsFacadeLocal;java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: java.lang.RuntimeException: java.lang.NoClassDefFoundError: Ltp/coma/data/beans/CallDetailsFacadeLocal;. Please see server.log for more details.
在服務器日誌中我可以看到:
[#|2012-03-28T12:42:42.236+0200|SEVERE|glassfish3.1.1|global|_ThreadID=22;_ThreadName=Thread-2;|Class [ Ltp/coma/data/beans/CallDetailsFacadeLocal; ] not found. Error while loading [ class tp.coma.cint.jsf.BookingController ]|#] [#|2012-03-28T12:42:42.252+0200|SEVERE|glassfish3.1.1|global|_ThreadID=22;_ThreadName=Thread-2;|Class [ Ltp/coma/data/beans/CallDetailsFacadeLocal; ] not found. Error while loading [ class tp.coma.cint.jsf.BookingController ]|#]
和幾個(八個)異常堆棧跟蹤。
我在做什麼錯?
看起來像你沒有在第二個應用程序中包含「CallDetailsFacadeLocal」類。 – Osw 2012-03-28 11:29:55
將CC-ejb項目添加到「項目屬性」中的CINT-war庫中,並將其設置爲不包含在包中。 – ManieQ 2012-03-28 11:45:30
@ManielQ,至少必須包含界面。 – Osw 2012-03-28 11:50:09