jakarta-ee - 如何在Web项目中使用来自Netbeans ejb项目的EJB?

标签 jakarta-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_lated_pa​​ckage 可见

com.myproject.ejb.my_ejb_lated_pa​​ckage 不可见

当然,将 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/

相关文章:

java - 在两个不同的java类中使用变量

jakarta-ee - 在 Quartz 作业中使用 CDI

java - 找不到 EJB

java - Netbeans 无法识别 import com.mysql.jdbc.jdbc2.optional.MysqlDataSource?

svn - 如何在NetBeans中强制本地文件同步?

tomcat - 哪个 AS 更适合 EJB-2 应用程序,客户端代码将驻留在 tomcat6 中

java - Heroku java.lang.UnsupportedClassVersionErrorUnsupported Major.minor 版本 51.0

尝试在服务器中运行时出现 Java.lang.illegalArgumentException

rest - 没有为带有 jaxrs 的 rest-service 中的参数找到注入(inject)源

java - 运算符 == 不能应用于 java.lang.String char