当前位置: 首页 > 知识库问答 >
问题:

Spring集成超文本传输协议出站网关记录错误

龚远
2023-03-14

我有一个集成流程,我从jms通道读取消息,并使用http-outbound-gateway通过REST api调用发送它们。现在,当我收到一个5xx Http服务器错误时,我希望记录服务的URL以及响应消息。

我看到RestTemplate实例已经记录了URL并调用了一个ReactErrorHandler,它可以是一个自定义实现。

我的问题是:响应错误处理程序只接收ClientHttpACK作为参数,我无法知道来自该实例的URL。我需要的是记录服务器错误,例如:“错误URL-响应...”

我该怎么做呢?我无法覆盖< code>RestTemplate的错误处理,并且< code > ResponseErrorHandler 没有足够的信息。

非常感谢你。

共有1个答案

燕正卿
2023-03-14

我在那里看到的。

HttpRequestExecutingMessageHandler

catch (Exception e) {
        throw new MessageHandlingException(requestMessage, "HTTP request execution failed for URI ["
                + (realUri == null ? uri : realUri.toString())
                + "]", e);
    }

包括该 DefaultResponseErrorHandler from the RestTemplate 的结果。正如你所看到的,我们在这里用于 MessageHandlingException uri 以及 requestMessage

此外,此异常将委托给该jms通道

为什么这对你来说还不够?

从另一边,您可以添加

 类似资料:
  • 我有一个应用程序,我想设置一个带有的endpoint,因此我有以下配置: 现在,如果我调用enpoint传递参数为

  • 有多台服务器正在监听actiemq。链被配置为进行超文本传输协议[出站网关]调用。假设其中一台服务器接收消息,如果超文本传输协议调用因某种原因失败,则介于两者之间。消息应该放回队列,以便另一台服务器可以接收消息并进行处理。这可以使用Spring集成来实现吗?我在Transaction上读了很多,但是找不到可行的方法。

  • 我的LogCat: 签名密钥(sw)为https://api.dropbox.com/1/shares/dropbox/a.jpg?oauth_consumer_key=2f2y1dyuqhp58ek 我对http没有太多经验。。 因为httpPost=新的httpPost(sw);工作正常,这是否意味着基本字符串签名正确? 还是我错过了什么?

  • 我正在使用GWT和Spring controller来管理http流量。有些请求可能需要很长时间,但我希望在超过给定时间时终止请求。 我如何配置超时Spring。我也使用Apache Tomcat 7.0。我试图在tomcat上inrease最大线程,但有一段时间tomcat工作缓慢,因为请求线程不会死。

  • 我想知道你对这个概念的看法/意见。如果有替代方案?这是否可行/有益? 据我所知,对于每个http请求,服务器都会执行一些操作并返回http响应。 现在考虑任何场景,我们希望对服务器上运行的进程有更多的控制。 情景1:http请求发送- 在这里,资源被浪费了。 情况2:http请求发送- 在这里,客户端不知道服务器中运行的进程的状态。客户端必须等待,直到它获得超文本传输协议响应。 我的想法是:在初始

  • 我有一个http出站网关,它将json消息发布到rest服务,现在rest将以json消息类型的http错误状态响应,以防我们的应用程序捕获任何错误。在将json消息发布到rest服务并获得http成功状态的愉快场景中,我们的应用程序也应该捕获json消息。 现在我通过Spring集成实现了什么,我能够发送消息并获得成功响应并捕获它,但在错误状态下Spring行为会抛出异常,我如何更改行为? 如果