gpt4 book ai didi

java - Apache CXF 3.2 如何读取 SOAP 错误消息

转载 作者:行者123 更新时间:2023-12-02 04:59:52 25 4
gpt4 key购买 nike

我正在尝试从 CXF 拦截器读取 SOAP 错误消息,但无法提取,我捕获了来自 Fidler 的响应

以下是 fidler 的回复

--uuid:0674d395-99e7-44d8-966c-1f1d387f4234
Content-Id: <rootpart*0674d395-99e7-44d8-966c-1f1d387f4234@example.jaxws.sun.com>
Content-Type: application/xop+xml;charset=UTF-8;type="text/xml"
Content-Transfer-Encoding: binary

<?xml version="1.0" ?><S:Envelope xmlns:S="http://schemas.xmlsoap.org/soap/envelope/"><S:Body><S:Fault xmlns:ns4="http://www.w3.org/2003/05/soap-envelope" xmlns=""><faultcode>S:Server</faultcode><faultstring>Upload Failed!</faultstring></S:Fault></S:Body></S:Envelope>

--uuid:0674d395-99e7-44d8-966c-1f1d387f4234--

以下是我的代码

向客户端添加了FaultInterceptor

client.getInFaultInterceptors().add(faultInterceptor);

public class FlexFaultResponseInterceptor extends AbstractSoapInterceptor {

public FlexFaultResponseInterceptor() {
super(Phase.RECEIVE);
}

@Override
public void handleMessage(SoapMessage message) throws Fault {
Message InFaultMessage = message.getExchange().getInFaultMessage();
Message OutFaultMessage = message.getExchange().getOutFaultMessage();
}
}

最佳答案

我通过将以下代码添加到 InInterceptor 中解决了我的问题

@Override
public void handleMessage(SoapMessage message) throws Fault {
CachedOutputStream out = message.getContent(CachedOutputStream.class);
byte[] originalMessage = IOUtils.toByteArray( out.getInputStream() );
String fault=new String(originalMessage)
}

关于java - Apache CXF 3.2 如何读取 SOAP 错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56391644/

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