我正在尝试使用Apache的CXF库开发一个WebService的客户端应用程序。在这个特定的服务器实现中,当请求中缺少一些数据(例如某人的ID号码)时,它会返回HTTP代码403(禁止),但响应体作为Soap Fault包含了应用程序特定的错误详情。
例如,这是我使用SoapUI收集到的响应:
如您在高亮文本中看到的,这个请求有一个响应体。
现在我需要从我的应用程序中检索响应体。我尝试在不同阶段使用拦截器,例如
我错过了什么?
以下是我得到的异常和堆栈跟踪:
例如,这是我使用SoapUI收集到的响应:
![Response in the SoapUI](https://istack.dev59.com/Q53fs.webp)
现在我需要从我的应用程序中检索响应体。我尝试在不同阶段使用拦截器,例如
SEND_ENDING
和POST_PROTOCOL
,但似乎无法在给定的Message
参数中找到它。我错过了什么?
以下是我得到的异常和堆栈跟踪:
org.apache.cxf.interceptor.Fault: Could not send Message.
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:67)
at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:308)
at org.apache.cxf.endpoint.ClientImpl.doInvoke(ClientImpl.java:531)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:440)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:355)
at org.apache.cxf.endpoint.ClientImpl.invoke(ClientImpl.java:313)
at org.apache.cxf.frontend.ClientProxy.invokeSync(ClientProxy.java:96)
at org.apache.cxf.jaxws.JaxWsClientProxy.invoke(JaxWsClientProxy.java:140)
at com.sun.proxy.$Proxy36.arquivo(Unknown Source)
at br.com.dgsistemas.TesteWS.main(TesteWS.java:133)
Caused by: org.apache.cxf.transport.http.HTTPException: HTTP response '403: Forbidden' when communicating with https://www.wsrestrito.caixa.gov.br/siies/WsSolicitacao
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.doProcessResponseCode(HTTPConduit.java:1620)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponseInternal(HTTPConduit.java:1627)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.handleResponse(HTTPConduit.java:1572)
at org.apache.cxf.transport.http.HTTPConduit$WrappedOutputStream.close(HTTPConduit.java:1373)
at org.apache.cxf.transport.AbstractConduit.close(AbstractConduit.java:56)
at org.apache.cxf.transport.http.HTTPConduit.close(HTTPConduit.java:673)
at org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage(MessageSenderInterceptor.java:63)
... 9 more
谢谢!