我创建了一个 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_lated_package
可见
而
com.myproject.ejb.my_ejb_lated_package
不可见
当然,将 EJB 注入(inject)到 Web 项目中一定很简单,因为拥有单独的 ejb 和 Web 项目的全部意义在于,可以将业务逻辑放置在 ejb 中并从 Web 资源(例如 servlet)进行调用。
那么我应该如何在 Web( war )应用程序中使用 EJB?
最佳答案
我必须明确声明 ejb 项目作为 Web 项目的依赖项。如果它是常规 NetBeans 企业应用程序,那么这似乎是自动完成的,但如果它是 Maven 企业应用程序,则不会自动完成,在我的例子中就是这样。
关于jakarta-ee - 如何在Web项目中使用来自Netbeans ejb项目的EJB?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464774/