java - JBoss EAP 更新到 7.2.1 后如何处理 WELD-001477?
问题描述
与之前的 7.2.0 版本相比,我目前正在测试最新的JBoss EAP 7.2.1 。虽然 7.2.0 对我们的大型企业应用程序工作得很好,但后来的 7.2.1 现在在启动过程中抛出了许多类似这样的异常:
WELD-001477:带有限定符 [@Any @Default] 的 bean Managed Bean [class package.SomeFacadeBean] 声明了一个钝化范围,但有一个(n)拦截器 [class com.arjuna.ats.jta.cdi.transactional.TransactionalInterceptorMandatory 拦截 @ Transactional] 具有非钝化能力依赖项 com.arjuna.ats.jta.cdi.JNDIBean@6f5e65a8
这些 bean 声明如下:
@ConversationScoped
public class SomeFacadeBean implements SomeFacade, Serializable {
// Simplified example...
@Transactional
public void someMethod(Object param) {
// ...
}
}
WELD-001477
我可以通过删除这里来解决 EJB 模块中的这个初始错误——但是对于我在 WEB 模块中使用方法组合@ConversationScoped
的所有 UI bean 的类,会引发同样的错误。@Transactional
@ConversationScoped
而且我不能@ConversationScoped
在这里真正删除 - 这些是需要该范围的 UI bean。
@ConversationScoped
public class SomeBeanUI implements Serializable {
// Simplified example...
@Inject
private SomeFacade facade;
private Object anySerializable;
@Transactional
public void save() {
// ...
}
}
那么如何使用 JBoss EAP 7.2.1 解决这个新问题呢?
解决方案
仅出于完整性考虑...此回归已在 EAP 7.2.3 中修复。
推荐阅读
- php - 允许 php 值仅在子目录中工作
- c++ - 用于 mmap() 的 Linux 非持久性后备存储
- arrays - Ansible 中的数组
- asp.net-core - 如何将 localDb 连接字符串更改为用于 Linux 部署的 SQL Server?
- python-3.x - Python - 水平输出,带括号、逗号和引号
- python - 将 tkinter Optionmenu 的标题设置为字符串和 StringVar
- android - 蓝牙与 DisplayOnly 配对不出现密码框
- html - Chrome 剪切长页面
- node.js - NodeJS 注册 - 用户名区分大小写(唯一字段)
- intellij-idea - 无法解析另一个模块中的类的符号