WFLYEE0040:此模块中已定义名为“...”的组件

jac*_*ter 8 java jboss wildfly

我在 Java Maven 项目中收到此错误。奇怪的是,它并没有出现在每台机器上,所以我认为它与配置问题有关。

RoleKeyCacheImpl 类是一个 @Startup @Singleton:

@Startup
@Singleton
public class RoleKeyCacheImpl implements RoleKeyCache { ... }
Run Code Online (Sandbox Code Playgroud)

这是 Wildfly 在部署服务时触发的错误。

引起原因:java.lang.IllegalArgumentException:WFLYEE0040:名为“RoleKeyCacheImpl”的组件已在此模块中定义,位于 org.jboss.as.ee.component.EEModuleDescription.addComponent(EEModuleDescription.java:167) 处 org.jboss.as .ejb3.deployment.processors.EJBComponentDescriptionFactory.addComponent(EJBComponentDescriptionFactory.java:58)

我试过了:

  • 在同一台计算机上安装新的 Wildfly(V10、V13)-> 没有帮助
  • 在这台机器上安装全新的 Eclipse -> 没有帮助
  • 清理和重建所有相关项目
  • 确保部署文件夹为空并且不包含同一 WAR 的旧版本
  • 阅读此处的相关问题,这也没有帮助(他们使用 Spring):A名为“XXX”的组件已在 JBoss 7.1.1 的此模块中定义
  • 阅读并尝试此问答:Wrong dependency with EJB in JBoss Wildfly (server-clean) -> 没有帮助
  • 删除并重建本地 Maven 代表(“.m2”)-> 无效

  • 在另一台计算机上检查相同的源 -> 在一台计算机上确实有效,在另一台计算机上却给出了相同的错误

我完全不知道问题是什么,甚至可能是什么。在一台机器上,我们检查它,它运行没有错误。在其他情况下,也会发生完全相同的错误。

有人有想法吗?

Zac*_*igo 0

看起来该类已经存在。检查是否确实如此...您可能必须重写 EEModuleDescription 的该部分以使用其自己的私有方法(这将是您要编写的),而不是覆盖 RoleKeyCacheImpl 中的方法。如果该类实际上不存在,则右键单击该项目 -> Maven 2 Tools -> 生成 Eclipse Artifacts(检查更新)。这将重新生成项目使用的所有依赖项。另请确保您没有错误地将任何新项目添加到类路径中,因为这也可能导致此错误。