0
我有基於Apache CXF的Web服務。我編寫了攔截器來記錄一些包含http響應代碼的特定內容。如何在CXF攔截器中獲取HTTP RESPONSE CODE?
public class MyOutInterceptor extends AbstractPhaseInterceptor<Message> {
public MyOutInterceptor() {
super(Phase.SEND);
}
@Override
public void handleMessage(Message message) throws Fault {
Integer responseCode = (Integer) message.get(Message.RESPONSE_CODE);
//...
}
}
但是!!! responseCode
是null
。即使我改變攔截器階段,它總是null
。
如何在CXF攔截器中獲取http響應代碼?
UPD。申請春/ CXF配置:https://gist.github.com/alexiuscrow/b5ceb2df7d652a77cd788454e0792211
UPD。治標不治本
@Override
public void handleMessage(Message message) throws Fault {
Integer responseCode = (Integer) message.get(Message.RESPONSE_CODE);
if (null == responseCode) {
HttpServletResponseWrapper responseWrapper =
(HttpServletResponseWrapper) message.get(AbstractHTTPDestination.HTTP_RESPONSE);
responseCode = responseWrapper.getStatus();
}
//...
}
我檢查了。它綁定到'outInterceptors'。 – Alexiuscrow
檢查第一個解決方案,它與您已經實現的相同,但我想您已經將攔截器註冊到不同的解決方案。 –
攔截器配置有JAX-WS。可能是問題的原因?應用程序Spring/CXF配置:https://gist.github.com/alexiuscrow/b5ceb2df7d652a77cd788454e0792211 – Alexiuscrow