2

我创建了一个 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 的“找不到符号”。即使它位于“兄弟”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 项目的全部意义在于,业务逻辑可以放置在 ejb 中并从 Web 资源(如 servlet)中调用。

那么我应该如何在 Web(战争)应用程序中使用 EJB?

4

2 回答 2

2

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

于 2013-01-22T20:21:10.920 回答
0

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

于 2013-08-01T19:38:52.930 回答