Java 迁移到WildFly后接口找不到Bean

Java 迁移到WildFly后接口找不到Bean,java,jboss,cdi,wildfly,bean-manager,Java,Jboss,Cdi,Wildfly,Bean Manager,在JEE应用程序(从JBoss 7.1.1迁移到WildFly 8.2.1)迁移之后,我们获取CDIBeans的方法停止了工作。该应用程序有几个模块(独立的JAR文件)组合成一个WAR文件,现在部署在WildFly上 要注入的Bean位于模块服务中,它正在实现接口IPProcessor: @Loggable @Monitorable @Singleton @ConcurrencyManagement(CONTAINER) @Lock(READ) @LocalBean @ApplicationSc

在JEE应用程序(从JBoss 7.1.1迁移到WildFly 8.2.1)迁移之后,我们获取CDIBeans的方法停止了工作。该应用程序有几个模块(独立的JAR文件)组合成一个WAR文件,现在部署在WildFly上

要注入的Bean位于模块
服务中,它正在实现接口
IPProcessor

@Loggable
@Monitorable
@Singleton
@ConcurrencyManagement(CONTAINER)
@Lock(READ)
@LocalBean
@ApplicationScoped
public class Processor implements IProcessor {
[...]
在应用程序的另一个模块(
common
)中,还有其余的逻辑:接口
ipprocessor
和我们搜索它的类

以下是检索BeanManager的方式:

public void keepBeanManager(@Observes AfterBeanDiscovery abd, BeanManager beanManager) {
    bm = beanManager;
}
这就是通话的方式:

Set<Bean<?>> jobBeans = bm.getBeans(IProcessor.class);

Set正如Xavier Dury在评论中指出的那样,没有找到Bean,因为它被注释为
@LocalBean
。删除
@LocalBean
注释修复了该问题

从:

指定会话bean公开无接口视图

由于
Processor
正在实现接口
ipprocessor
,因此不应使用注释
@LocalBean


对我来说仍然奇怪的是,为什么它在JBoss上工作…

您尝试过没有@LocalBean吗?每个JAR都有
bean.xml
?@JohnAment是的,每个JAR都有一个bean。xml@XavierDury成功了!删除LocalBean修复了这个问题。我一直在读,LocalBean仅在bean具有无接口视图时使用。所以我猜这一直都是错误的,因为处理器是通过接口IPProcessor公开的。我想知道为什么它能在JBoss上工作。非常感谢你!