2011-01-31 3 views
5

일부 매개 변수 유효성 검사를 수행하는 사용자 지정 인터셉터를 작성했습니다. 오류 코드를 반환하고 JAXB 주석 클래스를 응답 본문으로 serialize 할 수 있기를 원합니다.Apache CXF : 인터셉터에서 장애 응답을 반환하는 방법

WebApplicationException을 던지면 내부에 Response 객체를 직렬화하기 위해 수행 된 특별한 처리가 없습니다 (이는 다른 인터셉터에 의해 수행된다고 가정합니다).

요격 체인을 멈추지 만 어떻게 JAXB가 응답 엔티티를 직렬화합니까?

답변

3

글쎄, 적어도 CXF JAX-RS 요격 흐름, 사용자가 설정 한 경우 : 다른 단계가 호출합니까 동안

message.getExchange().put(Response.class, response); 

은 ... 다음 실제 서비스가 호출되지 않습니다. .

Response response = Response 
    .status(Response.Status.FORBIDDEN) 
    .entity(new ErrorEntity("This is a JAXB object with an error string")) 
    .build(); 

나는 또한 CXF JAX-RS 필터에서 실행되는 일부 사용자 인증이 있습니다

에서 그 논리 차기 그래서 나는이 같은 응답을 내장 위치를 ​​확인하기 위해 CXF 코드에 파고하지 않은 인증이 괜찮 으면 매개 변수를 확인하기를 원하므로 PRE_INVOKE 단계에서 매개 변수 인터셉터 클래스를 실행하도록 설정하십시오.

+0

그러나 SOAP 프로토콜로 작업하는 경우에는이 방법이 작동하지 않습니다. 누군가 SOAP 케이스에 대한 업데이트를 제공 할 수 있습니까? –

관련 문제