我经常收到关于 nullChannel 未在STS Problems
视图中定义的警告:
Referenced bean 'nullChannel' not found
但是如果我在上下文文件中添加声明,例如<int:channel id="nullChannel" />
或<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" />
答案 0 :(得分:1)
我不确定上周为什么它对我来说可能是好的(可能是飞行员错误),但我现在用
<int:service-activator input-channel="errorChannel" output-channel="nullChannel" expression="foo" />
并且,如果我翻转输入/输出通道,警告会更改为errorChannel
- 我们没有收到输入通道警告的原因是因为STS可能知道我们将创建输入通道如果需要的话就飞。
我猜STS只是不知道这些隐含的bean。
我会问STS的人,我们是否可以想出一个方法来给他们一个隐含的bean列表来抑制这些警告。
如果不可能,我们可以考虑放宽规则,防止添加自定义nullChannel
bean。