2013-01-22 93 views
2

我創建了一個包含ejb(jar)項目和web(war)項目的耳朵的NetBeans Enterprise應用程序。如何從Web項目中的Netbeans ejb項目使用EJB?

我在我的web項目中有一個servlet,我想使用其中的ejb項目中的一個EJB。

@WebServlet(name = "Shop", urlPatterns = {"/ajax/add_to_cart"}) 
public class ShoppingCartServlet extends HttpServlet { 

    @EJB 
    ShoppingCartFacade shoppingCartFacade 

我在NetBeans中得到一個錯誤 - 「無法找到符號」爲ShoppingCartFacade。即使它位於「兄弟」ejb項目中,Netbeans也無法自動找到ShoppingCartFacade的包。如果我開始在Servlet中手動輸入包名稱,即。

import com.myproject.... 

我可以看到,唯一可見的包是在web項目本身,即。

com.myproject.web.my_web_related_package可見

com.myproject.ejb.my_ejb_related_package是不可見的

當然,它必須是直接注入一個EJB到Web項目具有單獨的EJB和Web項目的全部意義在於使可以將業務邏輯放在ejbs中並從諸如servlet之類的網絡資源中調用。

那麼我該如何在Web(war)應用程序中使用EJB呢?

回答

2

我必須明確聲明ejb項目作爲Web項目的依賴項。看起來這是自動完成的,如果它是一個普通的NetBeans企業應用程序,但不是它是Maven企業應用程序,這是我的情況。

+1

您還可以將EJB放入戰爭(如果您不需要遠程訪問它們) – LightGuard

+0

我不想將EJB放入戰爭中,因爲我想分離關注點。 – sonicboom

0

我認爲問題在於Maven不知道如何更新它的存儲庫。您需要首先從本地Maven回購庫中刪除所有項目工件,然後使用依賴項進行重建。問題就會消失。

相關問題