如何在Web项目中使用Netbeans ejb项目中的EJB?

时间:2013-01-22 17:42:43

标签: java-ee netbeans ejb cdi

我创建了一个NetBeans Enterprise应用程序,它包含一个包含ejb(jar)项目和web(war)项目的ear。

我的web项目中有一个servlet,我想使用其中一个来自ejb项目的EJB。

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

    @EJB
    ShoppingCartFacade shoppingCartFacade

我在NetBeans中收到错误 - "找不到符号"对于ShoppingCartFacade。 Netbeans无法自动找到ShoppingCartFacade的包,即使它位于"兄弟" ejb项目。如果我开始在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资源调用。

那么我应该如何在web(war)应用程序中使用EJB?

2 个答案:

答案 0 :(得分:2)

我必须明确声明ejb项目是Web项目的依赖项。如果它是一个常规的NetBeans企业应用程序,它似乎是自动完成的,但如果它是Maven企业应用程序则不然,这是我的情况。

答案 1 :(得分:0)

我认为问题是Maven不知何故不更新它的存储库。您需要首先从本地maven repo中删除所有项目工件,然后依赖于重建。问题就会消失。