gpt4 book ai didi

java - 从 EAR 项目中的 War 项目访问 EJB 项目中的类?

转载 作者:行者123 更新时间:2023-11-30 11:50:47 25 4
gpt4 key购买 nike

我正在创建一个基于 MDB 和支持这些 MDB 的类的项目。我还需要使用 ServletContextListener 与 MDB 宇宙交互(详情如下),这意味着我需要一个 WAR 项目。

问题:ServletContextListener 如何访问EJB 项目中的类?

项目组织(标准 Eclipse EAR 项目):

EAR 项目 里面有一些 jar EJB项目 有一些 MDB 和 MDB 使用的许多其他类 war 计划 有 ServletContextListener。

我为什么要这样做?我需要在项目启动时启动一个线程。此线程需要访问 MDB 也使用的一组类。

注意:我知道我可以将这些通用类放入 EAR 项目的 jar 中。如果有一种方法可以做到这一点,即单个 eclipse “调试为”->“在服务器上”,那么这将是一个很好的解决方案。无论提供什么解决方案,都需要支持在服务器上进行调试,并逐步调试到所有类。

注意 2:我可以告诉 Eclipse WAR 项目依赖于 EJB 项目,这会删除 Eclipse 错误标志,但是 Eclipse 会显示一个警告,指出部署的项目中不存在这种依赖关系,这意味着我的类是从WAR 将无法在运行时实例化。

最佳答案

通过在 Java EE 服务器上进行“标准”部署(意味着:使用默认类加载器策略),WAR 类“可以看到”封闭 EAR 中的所有内容,并且 EAR 类优先。

I can tell Eclipse that the WAR project is dependent on the EJB project

你不是反过来了吗? EAR 项目需要在项目的“Properties -> Deployment Assembly”部分中包含您的 WAR 项目。

想到的另一种可能性是,您可能正在尝试在不支持 EAR 的非 Java EE 服务器上进行部署,例如 Tomcat。这可能就是为什么 Eclipse 说依赖项将不存在于已部署的项目中。

关于java - 从 EAR 项目中的 War 项目访问 EJB 项目中的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781078/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com