gpt4 book ai didi

Java Spring Web 服务客户端故障处理

转载 作者:搜寻专家 更新时间:2023-10-31 19:30:32 24 4
gpt4 key购买 nike

我编写了一个与 UPS Web 服务一起工作的 Web 服务客户端(使用 Java Spring 和 JAXB Marshaller)。当我发送有效请求时,一切正常。当我发送无效请求(重量 > 150 磅)时,UPS 网络服务响应 SOAP 故障。客户端应用程序失败并显示

org.springframework.oxm.UnmarshallingFailureException: JAXB unmarshalling 
exception; nested exception is javax.xml.bind.UnmarshalException:
unexpected element (uri:"http://schemas.xmlsoap.org/soap/envelope/", local:"Fault").

显然,我的程序无法破译 Web 服务返回的 SOAP 错误。我写了一个自定义的 FaultMessageResolver,但它没有被调用。这是代码:

public class UpsRateClient extends WebServiceGatewaySupport {
public UpsRateClient(WebServiceMessageFactory messageFactory) {
super(messageFactory);
getWebServiceTemplate().setFaultMessageResolver(new UpsFaultMessageResolver());
}

public RateResponse getRate(RateRequest rateRequest) {
return (RateResponse) getWebServiceTemplate().marshalSendAndReceive(rateRequest, new UpsRequestWSMC());
}
private class UpsFaultMessageResolver implements FaultMessageResolver {
public void resolveFault(WebServiceMessage message) throws IOException{
System.out.println("Inside UpsFaultMessageResolver");
}
}
}

感谢您的宝贵时间!

最佳答案

我有同样的问题(HTTP 200OK 的 SOAP 错误),我通过将 CheckConnectionForFault 属性设置为 false 来解决它。 See .

关于Java Spring Web 服务客户端故障处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7541836/

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