首页 > 解决方案 > 迁移到 Jboss EAP7 时出现 WELD 异常

问题描述

从 EAP 6.4.9 迁移到 JBOSS EAP 7.3 时,我遇到了以下异常。

错误 [org.jboss.as.controller.management-operation] (ServerService 线程池 -- 72) WFLYCTL0013: 操作 ("add") 失败 - 地址: ([("deployment" => "xxx.war")]) - 失败描述:{"WFLYCTL0080: Failed services" => {"jboss.deployment.unit.\"xxx.war\".WeldStartService" => "无法启动服务原因:org.jboss.weld.exceptions.DefinitionException :WELD-000805:对于[EnhancedAnnotatedTypeImpl]公共@ManagedBean类com.xxxx.xxxx.SampleManagedBean“}}错误[org.jboss.as.server](ServerService线程池- - 72) WFLYSRV0021:部署“xxxx.war”的部署已回滚,并显示以下失败消息:{“WFLYCTL0080:服务失败" => {"jboss.deployment.unit.\"xxxx.war\".WeldStartService" => "无法启动服务原因:org.jboss.weld.exceptions.DefinitionException: WELD-000805: 不能有更多对于 [EnhancedAnnotatedTypeImpl] public @ManagedBean 类 com.xxxx.xxxxx.SampleManagedBean"}} 使用 @PostConstruct 注释的一个后构造方法

它在 EAP6.4 中运行良好。该问题出现在 EAP 7 及更高版本中。对此的任何建议都会有很大帮助。提前致谢。

标签: javajbossjboss-weld

解决方案


javadoc@PostConstruct指定:

此注解只能注解一种方法

错误日志向我们显示 JBoss EAP 7.3 抱怨com.xxxx.xxxx.SampleManagedBean该类有多个这样的方法。我建议在此类中创建一个新方法,该方法@PostConstruct将调用另外两个方法,应从中删除注释。

这不是 JBoss EAP 7.3 的错误,我怀疑你可以避免修复这个类。


推荐阅读