gpt4 book ai didi

jakarta-ee - 如果两者都捆绑在 EAR 中,如何让 CDI 在 war 和 EJB 中运行

转载 作者:行者123 更新时间:2023-12-02 04:05:25 40 4
gpt4 key购买 nike

我正在尝试构建一个组装在 EAR 中的企业应用程序。此应用程序应包含一个或多个 ejb-jar 和一个或多个 war 。我想大量使用 CDI、拦截器和生产者。在第一步中,我想使用放置在应用程序所有区域的 ejb-jar 中的 Log-Producer。

我所做的是在 ejb/META-INF 和 war/WEB-INF/文件夹中创建 beans.xml。创建 EAR 工作。但是部署到 Glassfish 服务器 (3.1) 失败,并出现位于 ejb-jar 中的拦截器类的 ClassNotFoundException。

删除 EAR 并在 war 中部署 ejb-jar 可以按预期工作。

由于模块化的原因以及拥有更多 war 和 ejb-jar 的事实,基于 EAR 的部署非常受欢迎。

所以问题是:有没有办法创建一个功能齐全的 EAR,包括 CDI 和所有其他好东西?

非常感谢你。

干杯
安斯加尔

最佳答案

我们在 JBoss 6 上遇到了与 CDI 类似的问题。workaround对我们来说,就是将 WAR 部署器配置为将一个全局类加载器范围与 EAR 文件中部署的其他应用程序一起使用。默认情况下,WAR 文件中的每个应用程序都使用自己的类加载器范围。不幸的是,我不知道 Glassfish 是否有类似的配置,但我想有。

有一个开放的ticket在 glassfish 问题跟踪器上,这也可能与您的问题有关。

关于jakarta-ee - 如果两者都捆绑在 EAR 中,如何让 CDI 在 war 和 EJB 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7914478/

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