Jakarta ee CDI不';当ejb注入实现在同一ear的war中定义时,它不起作用

Jakarta ee CDI不';当ejb注入实现在同一ear的war中定义时,它不起作用,jakarta-ee,cdi,ear,Jakarta Ee,Cdi,Ear,我有一个EAR文件,其中包含多个EJBJAR和war。在ejb jar中,我注入了如下接口的多个实现: @Inject @Any private Instance<ConfigurationProviderLocal> providerEjb; 实现FormConfigurationProviderBean从不迭代。我在日志中没有可以解释这一点的消息 此外,当我在单机版中部署war时(不是在ear中,而是在ear中嵌入依赖项),注入工作正常 在war中定义实现时是否支持CDI?是否

我有一个EAR文件,其中包含多个EJBJAR和war。在ejb jar中,我注入了如下接口的多个实现:

@Inject
@Any
private Instance<ConfigurationProviderLocal> providerEjb;
实现
FormConfigurationProviderBean
从不迭代。我在日志中没有可以解释这一点的消息

此外,当我在单机版中部署war时(不是在ear中,而是在ear中嵌入依赖项),注入工作正常

在war中定义实现时是否支持CDI?是否存在类加载器问题?

如果设置正确(可能是这样),这应该可以工作

在JBoss世界(AS 6)中,我也遇到了类似的问题,耳朵中的不同工件彼此看不见。我通过重新配置JBoss类加载机制解决了这个问题,但这是JBoss的普通(专有)东西

作为调试的第一步,我要做的是:查询bean的真正用途。这可能会给你一个提示。一个转储初始bean处理的小程序也会有所帮助

如果它看起来仍然像一个CL问题,您可能会在Glassfish文档中找到该问题的配置选项。如果这是一个已知的问题,可能值得与GlassFish开发人员一起检查…

只要设置正确(可能就是这样),这应该可以工作

在JBoss世界(AS 6)中,我也遇到了类似的问题,耳朵中的不同工件彼此看不见。我通过重新配置JBoss类加载机制解决了这个问题,但这是JBoss的普通(专有)东西

作为调试的第一步,我要做的是:查询bean的真正用途。这可能会给你一个提示。一个转储初始bean处理的小程序也会有所帮助


如果它看起来仍然像一个CL问题,您可能会在Glassfish文档中找到该问题的配置选项。如果这是一个已知的问题,可能值得向GlassFish开发人员检查一下……

这似乎是一个类加载器问题:当我在另一个ejb jar中“导出”我的实现,并将其声明为war(提供范围)et和ear(范围编译)的deptency时,所有这些都可以完美地工作……这似乎是一个类加载器问题:当我“导出”时我在另一个EJBJAR中的实现,我声明它是我的war(提供范围)et和ear(范围编译)的deptency,所有这些都可以完美地工作……感谢链接。我不知道我是否会使用它们来解决这个问题,因为我通过使用EJBJAR来存储ejb来“解决”这个问题。我不知道BeanManer-end CDI扩展:我会把它加入书签。谢谢你的链接。我不知道我是否会使用它们来解决这个问题,因为我通过使用EJBJAR来存储ejb来“解决”这个问题。我不知道BeanManer end CDI扩展:我将把它添加到书签中。
for (ConfigurationProviderLocal provider : providerEjb) {
            [...]
        }