java - 迁移到 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 及更高版本中。对此的任何建议都会有很大帮助。提前致谢。
解决方案
此注解只能注解一种方法
错误日志向我们显示 JBoss EAP 7.3 抱怨com.xxxx.xxxx.SampleManagedBean
该类有多个这样的方法。我建议在此类中创建一个新方法,该方法@PostConstruct
将调用另外两个方法,应从中删除注释。
这不是 JBoss EAP 7.3 的错误,我怀疑你可以避免修复这个类。
推荐阅读
- node.js - Heroku 找不到 Playwright 文件
- swift5 - Swift 中用于往返日期/时间模式的日期格式
- powerapps - 从 MS Access 连接和编辑 CDS 实体
- python - 将大端字节转换为整数?
- sql-server - Power BI 中的 Vertipaq 引擎是否与 SQL Server 中的列存储索引使用的引擎相同?
- c++ - 如何播放具有特定名称的音频
- python - 根据给定的字符串查找匹配的元素
- mysql - 如何批量更新mysql数据库而没有重复?
- php - 将 mikrotik 脚本拆分为键/值 php 数组
- java - 试图解决此编译错误,由拆分方法导致的 string[] 无法转换为字符串