これが私の障害インターセプターです:
public class OutFaultInterceptor extends AbstractPhaseInterceptor<Message> {
public OutFaultInterceptor() {
super(Phase.SEND);
}
@Override
public void handleMessage(Message message) throws Fault
{
Fault fault = (Fault)message.getContent(Exception.class);
Throwable ex = fault.getCause();
Response response = JAXRSUtils.convertFaultToResponse(ex, message);
message.setContent(Response.class, response);
}
}
関連するcxf-configは次のとおりです。
<jaxrs:outFaultInterceptors>
<bean id="outfault" class="com.xxx.OutFaultInterceptor"/>
</jaxrs:outFaultInterceptors>
問題なく handleMessage メソッドに入ることができますが、メッセージを変更することはできません。
現在、返されるのはデフォルトです: ns1:XMLFault 何とか何とか...
私が返したいのは、適切な HTTP 応答コードと json 本体 (上記の応答変数に正しくあります) を持つ Response オブジェクトです。
ありがとう