首页 > 解决方案 > Wildfly 不需要的 EJB 注入

问题描述

我正在将 Java EE 应用程序从 Weblogic 12.2.1.3 转换为 Wildfly 18.1(需要坚持使用 Java 1.8),并且我正面临“渴望”EJB 注入的问题。

例如,在名为MyWar 且包含 ViewScopedBean 的 war 部署中:

@ViewScoped
public class BatchCCBean implements Serializable {

    @EJB(lookup = "java:global/consumer.batch.common/BatchJobService!com.company.api.batch.RemoteBatchJobService")
    RemoteBatchJobService batchJobService;
}

在 Weblogic 中,如果在 MyWar 部署期间未部署 consumer.batch.common,则一切正常,部署成功。当且仅当您尝试初始化 BatchCCBean 时,您才会收到异常。换句话说,它使用惰性EJB 初始化。

但是在 Wildfly 中,如果不先部署consumer.batch.common,我就无法部署 MyWar 应用程序, 因为 Wildfly 18.1 中的 Weld 会在部署期间尝试急切地初始化所有远程 EJB 注入。

这不是一个想要的行为。有人知道如何在 Wildfly 中“禁用急切的远程 EJB 注入”吗?

谢谢

标签: javajakarta-eeejbwildflyweld

解决方案


推荐阅读