gpt4 book ai didi

java - WFLYEE0040 : A component named '...' is already defined in this module

转载 作者:行者123 更新时间:2023-12-04 17:42:24 26 4
gpt4 key购买 nike

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

RoleKeyCacheImpl 类是一个@Startup @Singleton:

@Startup
@Singleton
public class RoleKeyCacheImpl implements RoleKeyCache { ... }

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

Caused by: java.lang.IllegalArgumentException: WFLYEE0040: A component named 'RoleKeyCacheImpl' is already defined in this module at org.jboss.as.ee.component.EEModuleDescription.addComponent(EEModuleDescription.java:167) at org.jboss.as.ejb3.deployment.processors.EJBComponentDescriptionFactory.addComponent(EJBComponentDescriptionFactory.java:58)



我试过了:
  • 在同一台机器上安装新的 Wildfly(V10、V13)-> 没有帮助
  • 在这台机器上安装一个全新的 Eclipse -> 没有帮助
  • 清理和重建所有相关项目
  • 确保部署文件夹为空且不包含相同 WAR 的旧版本
  • 在这里阅读相关问题也没有帮助(他们使用 Spring):A component named 'XXX' is already defined in this module in JBoss 7.1.1
  • 阅读并尝试了这个问答:Wrong dependencies with EJB in JBoss Wildfly (server-clean) -> 没有帮助
  • 删除并重建本地 Maven 代表(“.m2”)-> 无效
  • 在另一台计算机上检查相同的源 -> 在一台机器上工作,在另一台机器上它给出同样的错误

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

    有人有想法吗?

    最佳答案

    我在 EAP 7.1 上多次遇到同样的问题,现在又在 WildFly 21.0.0 上遇到了同样的问题。我根据经验知道这是由 Eclipse 引起的问题,它试图自动部署到配置的 WildFly 实例。在部署(或取消部署)期间,会出现一些并发文件问题,并且应该删除的文件仍在文件系统上,从而导致该组件已定义的错误。
    事实上,它还没有定义,只是 WildFly 感到困惑,因为它在他的临时目录中找到了一些不应该存在的旧文件,并引用了您的完全相同的组件。
    解决方案:在WildFly独立目录中删除'deployments'目录和'tmp'目录中的内容。请放心,所有的东西都可以安全移除。重新启动,错误消息将消失;-)

    关于java - WFLYEE0040 : A component named '...' is already defined in this module,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53864575/

    26 4 0