我实现了一个sftp-inbound-channel-adapter,当处理异常时,我应该显示一条自定义消息。
我试过了:
<int-sftp:inbound-channel-adapter id="sftpInbondAdapter"
auto-startup="true" channel="receiveChannel" session-factory="sftpSessionFactory"
local-directory="file:${directory.files.local}" remote-directory="${directory.files.remote}"
auto-create-local-directory="true" delete-remote-files="true"
filename-pattern="*.txt" >
<int:poller fixed-delay="${sftp.interval.request}"
max-messages-per-poll="-1" />
<int-sftp:request-handler-advice-chain>
<bean: class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice">
<property name="onSuccessExpression" value="payload" />
<property name="successChannel" ref="afterSuccessDeleteChannel" />
<property name="onFailureExpression" value="payload.renameTo(new java.io.File(payload.absolutePath + '.failed.to.send'))" />
<property name="failureChannel" ref="afterFailRenameChannel" />
</bean>
</int-sftp:request-handler-advice-chain>
但是元素
<int-sftp:request-handler-advice-chain>
不被接受。你能解释另一个解决方案吗?
答案 0 :(得分:0)
请求处理程序通知在一些下游组件上进行,而不是入站通道适配器。
您可以向error-channel
元素添加<poller/>
。发送到错误通道的消息将是ErrorMessage
,但有效负载除外。如果它是下游流的例外,则有效负载将是具有MessagingException
和failedMessage
属性的cause
。
添加一些组件以使用错误消息。