如果 CDI 和 EJB 都捆绑在 EAR 中,如何让 CDI 参与战争并运行 EJB

发布于 2024-12-11 22:30:32 字数 556 浏览 0 评论 0原文

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

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

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

由于模块化的原因以及基于 EAR 的更多 warejb-jar 部署这一事实非常受欢迎。

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

非常感谢。

干杯 安斯加尔

I'm trying to build an enterprise application which is assembled in an EAR. This application should contain one or more ejb-jars and one or more war's. I want to make heavily use of CDI, Interceptors and Producers. In the first step I want to use a Log-Producer which is placed in the ejb-jar in all areas of the application.

What I did is creating a beans.xml in the ejb/META-INF and the war/WEB-INF/ folders. Creating the EAR works. But deploying to the Glassfish Server (3.1) fails with a ClassNotFoundException of the Interceptor Class which is placed in the ejb-jar.

Removing the EAR and deploying the ejb-jar inside the war works as expected.

Due the reason of modularisation and the fact of having more war's and ejb-jar's a deployment based on an EAR is highly welcome.

So the question is: Is there a way to create a full featured EAR including CDI and all other nice stuff?

Thank you very much.

Cheers
Ansgar

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

命硬 2024-12-18 22:30:32

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

glassfish 问题跟踪器上有一个开放的 ticket,它可能与您的问题有关出色地。

We had similar problems with CDI on JBoss 6. The workaround for us was to configure the WAR deployer to use one global class loader scope togteher with the other applications deployed in the EAR file. By default each application in a WAR file uses its own class loader scope. Unfortunately I don't know whether there is a similar configuration available for Glassfish, but I guess there is.

There is an open ticket on the glassfish issue tracker, which might to relate to your problem as well.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文