gpt4 book ai didi

java - ClientInterceptor - 捕获 404 场景

转载 作者:行者123 更新时间:2023-11-29 04:34:55 26 4
gpt4 key购买 nike

我正在使用 ClientInterceptor 拦截我的应用程序发出的所有外部 soap 调用并记录请求和响应。我能够捕获请求/响应和故障场景。但是,当我看到由于端点配置不正确而导致的 404 错误时,我无法使用此接口(interface)提供的方法捕获此错误。有没有办法使用此接口(interface)捕获 404 错误?如果没有,能否请您帮助让我知道我需要探索的替代方案?

org.springframework.ws.client.support.interceptor.ClientInterceptor

最佳答案

org.springframework.ws.client.support.interceptor.ClientInterceptor.handleFault() 仅适用于拦截传入响应错误的过程。那是规范定义的 SOAP 故障。所以 SOAP 1.11.2规范定义了在 SOAP 错误的情况下返回的状态代码(例如,在请求消息信封中的格式错误的 XML 的情况下)。 SOAP 1.1 为故障指定了 500 状态代码,SOAP 1.2 为发送方故障指定了 400 状态代码,为所有其他故障指定了 500。如果出现故障,服务器会在包含 SOAP Fault 元素的响应中返回 SOAP 消息,然后可以将该元素传递给 ClientInterceptor.handleFault() 方法。但是404状态码说明不是SOAP失败而是系统错误。因此,如果您也需要处理这种情况,则需要改写 WebServiceTemplate.handleError() 方法。

这样就可以了

public class CustomWebServiceTemplate extends WebServiceTemplate{

@Override
protected Object handleError(WebServiceConnection connection, WebServiceMessage request) throws IOException {
log.info("Log the error case in here");
return super.handleError(connection, request);
}
}

关于java - ClientInterceptor - 捕获 404 场景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42076278/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com