gpt4 book ai didi

jakarta-ee - Glassfish:Weld 不会从一个 jar 中的类注入(inject)到 WEB-INF/lib 中相邻 jar 中的类

转载 作者:行者123 更新时间:2023-12-05 00:37:55 26 4
gpt4 key购买 nike

在 Glassfish 3.1 上部署时,我在 war 中使用的库中使用依赖注入(inject)(使用 CDI/Weld)时遇到问题。我有两个图书馆,说:

WEB-INF/lib/library1.jar
WEB-INF/lib/library2.jar

library1 包含一个公共(public)类,例如“InjectMe”。 Library2 包含另一个公共(public)类,例如“InjectionTarget”,其注入(inject)站点如“@Inject public InjectMe injectMe;” .

部署失败:
WELD-001408 Unsatisfied dependencies for type [InjectMe] with qualifiers [@Default] at injection point [[field] @Inject packagename.InjectionTarget.injectionSite].

两个文件都是带有 META-INF/beans.xml 的有效 CDI 文件。

我已经在 Glassfish 3.1 中更新了weld-osgi-bundle.jar 并且仍然看到这个问题。

如果我手动解压缩 library1 和 library2,将它们的类直接放入 WEB-INF/classes,部署成功并且注入(inject)按预期工作。

这正在迅速让我完全发疯。我即将重组我的模块,以便使用 maven-dependency-plugin 解压缩 jar 子包并归档为合并的 jar,然后我将依赖于我的 war 。不过,这很可怕。

想法?这不应该“正常工作”吗?

最佳答案

也许你遇到了这个错误?

https://issues.jboss.org/browse/WELD-846

http://java.net/jira/browse/GLASSFISH-15721

http://java.net/jira/browse/GLASSFISH-15735

我认为 Glassfish 3.1.1-b04 和更新版本使用 Weld 1.1.1.Final,它被标记为底层 Weld 错误的修复版本。使用该确切版本进行测试可能足以确认它。

关于jakarta-ee - Glassfish:Weld 不会从一个 jar 中的类注入(inject)到 WEB-INF/lib 中相邻 jar 中的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6436630/

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