我是 Spring 集成的新手,所以我可能会滥用术语。我有一个 ws:inbound-gateway 监听肥皂网络服务请求。
<int-ws:inbound-gateway id="myInGW"
request-channel="headersMapPopulationChannel"
reply-channel="ws-response-channel"
marshaller="marshaller"
unmarshaller="marshaller"/>
它将传入请求发送到 headersMapPopulationChannel,并将消息发送到适配器(用于从 JAXB 类转换为域),然后拆分器将其拆分为验证、日志记录和持久性。坚持不懈后,我正在根据请求运行与业务相关的事情。我想对所有这些都有异常控制点,这样我就可以管理在异常情况下该怎么做。我故意在业务类中放了一个 throw 异常语句。抛出异常,但我的频道似乎没有得到它。配置:
<int-ws:inbound-gateway id="myInGW"
request-channel="headersMapPopulationChannel"
reply-channel="ws-response-channel"
error-channel="ws-error-channel"
marshaller="marshaller"
unmarshaller="marshaller"/>
<int:channel id="ws-error-channel"/>
<int:service-activator input-channel="ws-error-channel"
expression="@exceptionHandlerService.handleThrowable(payload)"/>
<bean id="exceptionHandlerService" class="pack.integration.service.ExceptionHandlerService"/>
另外我不知道在我最外面的频道中控制异常是否正确。我应该在转发消息的任何地方收听异常吗?