java - 为什么我找不到引用的 bean nullChannel?
问题描述
我通常会收到关于未在 STS视图中定义nullChannel的警告:Problems
Referenced bean 'nullChannel' not found
但是如果我在上下文文件中添加一个声明,比如<int:channel id="nullChannel" />
or <int:publish-subscribe-channel id="nullChannel">
,我会得到:
java.lang.IllegalStateException: The bean name 'nullChannel' is reserved.
我想这是一个我可以放心忽略的警告,但我通常会尝试将警告归零,所以有什么我遗漏的吗?
更新
这些是与警告有关的部分,删除它们使其消失:
<int:header-value-router input-channel="listOfMaps" header-name="transaction_type" resolution-required="false" default-output-channel="nullChannel">
<int:mapping value="52" channel="requests52ListOfMaps"/>
</int:header-value-router>
<int:service-activator input-channel="httpRequestsSendsChannel" output-channel="nullChannel" ref="conversionController" method="enable52Delivery" />
<int:service-activator input-channel="httpRequestsDeletesChannel" output-channel="nullChannel" ref="inspector" method="inspect" />
解决方案
我不确定为什么上周对我来说没问题(可能是飞行员错误),但我现在明白了
<int:service-activator input-channel="errorChannel" output-channel="nullChannel" expression="foo" />
并且,如果我翻转输入/输出通道,警告将变为errorChannel
- 我们没有收到输入通道警告的原因是因为 STS 可能知道我们将在需要时动态创建输入通道。
我猜 STS 只是不知道这些隐式 bean。
我会问 STS 的人是否可以想出一种方法给他们一个隐式 bean 列表来抑制这些警告。
如果这不可能,我们可以考虑放宽阻止添加自定义nullChannel
bean 的规则。
推荐阅读
- java - Java8枚举避免多个if else
- ruby-on-rails - 带有变量的 RSpec 存根对象方法
- node.js - Nodejs - TypeError:无法读取未定义的属性“headersSent”
- android - Kotlin 如何调用扩展功能
- ios - 从嵌套的异步方法返回
- android - 为什么 BLE API 没有发现我的手机?它在发现设备时具有选择性
- reactjs - 如何更改 ReactJS 中的样式?
- git - 通过删除提交范围来清理旧的 git repo
- sql - 如何仅获取带有斜线的数据及其后面的数字?
- reactjs - 如何在 React 中重命名对象数据响应