0
Apache CXF를 기반으로하는 웹 서비스가 있습니다. http 응답 코드가 포함 된 특정 항목을 로깅하기위한 인터셉터를 작성했습니다.CXF 인터셉터에서 HTTP 응답 코드를 얻는 방법은 무엇입니까?
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);
//...
}
}
BUT !!! 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로 구성됩니다. 문제의 원인이 될 수 있습니까? 응용 프로그램 스프링/CXF 구성 : https://gist.github.com/alexiuscrow/b5ceb2df7d652a77cd788454e0792211 – Alexiuscrow