我有一组简单的REST服务,它们都配置了error-channel
,以允许service-activator
指定的bean捕获异常。
当发生异常时,将按预期调用bean中的方法,并记录异常。但是,调用者(即HTTP客户端)永远不会得到响应。
我需要做些什么才能将某种错误(或实际上是什么)返回给客户端?
我假设我错过了一些明显的东西!
答案 0 :(得分:1)
我猜你的service-activator
没有返回任何内容,但它对请求 - 回复案例不利。对于顶级HTTP组件,如果您在error-channel
内捕获异常并不重要,它仍然期望响应。
即使您在service-activator
中捕获并记录该异常,它也必须返回特定于响应状态的内容,例如:一些String消息。
此外,您可以从那里填充HttpHeaders.STATUS_CODE
邮件标题或使用<header-enricher>
填充。
在这种情况下,您应该依赖于请求消息头中的TemporaryReplyChannel
,因此不会在错误流中的最终组件中提供任何output-channel
。但无论如何,有效的return
必须存在。