gpt4 book ai didi

java - 在一个 EAR 中部署多个依赖的 CDI jar

转载 作者:行者123 更新时间:2023-12-02 09:23:18 24 4
gpt4 key购买 nike

我有一个关于如何部署多个包含 CDi 实现和 Web 应用程序的 jar 的问题。

这是我的 Jar 结构

--------     ----------      ------------
| WAR | <-- | API Jar | <-- | Data Jar |
-------- ---------- ------------
^
|
--------------
| Common Jar | And many more implementations
--------------

WAR 本身是一个 Web 应用程序,它使用 API Jar 中定义的类。 API jar 仅包含接口(interface)、注释、非逻辑类、限定符等...

API 的实现存储在不同的 JAR 中,并按主题划分。因此,数据、安全、日志记录、通用等方面的所有数据访问/操作实现。此实现依赖于 API Jar,也许还依赖于库。所有包都通过事件进行通信。

我们在每个实现和 Web 应用程序中都使用 CDI。完整的配置仅在WAR中。

我想将所有内容部署在一个 EAR 中。这就是我使用的文件结构:

EAR
- META-INF/application.xml
- api.jar
- api classes, no beans.xml here
- common.jar
- api implementation for common project classes
- META-INF/beans.xml
- data.jar
- api implementation for data classes
- META-INF/beans.xml
- logging.jar
- api implementation for logging classes
- META-INF/beans.xml
- webapp.war
- classes
- ( project classes which uses the api)
- META-INF
- services
- persistence.xml
- WEB-INF/beans.xml
- beans.xml
- web.xml

我的 application.xml 看起来像这样:

<application xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/application_6.xsd" version="6">
<display-name>test-ear</display-name>
<module>
<java>api-1.0.0.jar</java>
</module>
<module>
<java>common-package-1.0.0.jar</java>
</module>
<module>
<java>data-package-1.0.0.jar</java>
</module>
<module>
<java>logging-package-1.0.0.jar</java>
</module>
<module>
<web>
<web-uri>test-war-1.0.0.war</web-uri>
<context-root>/war</context-root>
</web>
</module>
</application>

我现在的问题是,这根本不起作用。 CDI 容器提示缺少一些 bean。我在谷歌上搜索了相关信息,发现包含 beans.xml 的 jar 必须部署为 ejbModule,但在这里我需要为所有内容创建一个 ejb.jar。另一个结果说我只需要将所有依赖项添加到 WEB-INF/lib 中的 WAR 文件中。同样的提示在这里。

我无法运行此程序并尝试在此处请求帮助。

作为服务器,我想使用 websphere(也许还有 tomee)。

编辑:Maven 用于将所有文件组装在一起。

非常感谢,如果有人可以帮助我:)

最佳答案

您是否尝试在 war list 中引用您的 jar ?

类似类路径:api.jar data.jarlogging.jar common.jar

关于java - 在一个 EAR 中部署多个依赖的 CDI jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15948463/

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