У меня есть служба REST, и я хочу зарегистрировать запрос и ответ. Они получают запрос JSON и генерируют другой ответ JSON. Я создал перехватчик, но не могу получить тело запроса / ответа. Это моя конфигурация cxf:
<bean id="ContextInInterceptor" class="main.interceptors.ContextMessageInInterceptor"></bean>
<bean id="ContextOutInterceptor" class="main.interceptors.ContextMessageOutInterceptor"></bean>
<bean id="ContextJSONInInterceptor" class="main.interceptors.ContextJSONInInterceptor"></bean>
<bean id="ContextJSONOutInterceptor" class="main.interceptors.ContextJSONOutInterceptor"></bean>
<cxf:bus>
<cxf:features>
<cxf:logging/>
</cxf:features>
<cxf:inInterceptors>
<ref bean="ContextInInterceptor"/>
</cxf:inInterceptors>
<cxf:outInterceptors>
<ref bean="ContextOutInterceptor"/>
</cxf:outInterceptors>
</cxf:bus>
А это мой код перехватчика:
public class ContextMessageInInterceptor extends AbstractPhaseInterceptor<org.apache.cxf.message.Message> {
@Autowired
ContextJSONInInterceptor contextJSONInInterceptor;
public ContextMessageInInterceptor() {
super(Phase.PRE_INVOKE);
}
@Override
public void handleMessage(Message message) {
contextJSONInInterceptor.handleMessage(message);
}
}
public class ContextJSONInInterceptor extends AbstractPhaseInterceptor<Message> {
public ContextJSONInInterceptor() {
super(Phase.PRE_INVOKE);
}
@Override
public void handleMessage(Message message) throws Fault {
System.out.println("Content-Type: " + message.get(Message.CONTENT_TYPE));
System.out.println(message.toString());
System.out.println("---------------");
}
}
public class ContextMessageOutInterceptor extends AbstractPhaseInterceptor<Message> {
@Autowired
ContextJSONOutInterceptor contextJSONOutInterceptor;
public ContextMessageOutInterceptor() {
super(Phase.WRITE);
}
@Override
public void handleMessage(Message message) throws Fault {
contextJSONOutInterceptor.handleMessage(message);
}
}
public class ContextJSONOutInterceptor extends AbstractPhaseInterceptor<Message> {
public ContextJSONOutInterceptor() {
super(Phase.WRITE);
}
@Override
public void handleMessage(Message message) throws Fault {
System.out.println("Content-Type: " + Message.CONTENT_TYPE);
System.out.println(message.toString());
System.out.println("---------------");
}
}
ContextMessageInInterceptor и ContextMessageOutInterceptor работают должным образом, и они идут к ContextJSONInInterceptor и ContextJSONOutInterceptor соответственно, но я не знаю, как получить тело запроса / ответа от этих перехватчиков. Я пытался использовать константы «Сообщение», и все, что я получаю, это тип контента.
Кто-нибудь знает, как получить тело запроса / ответа от этих перехватчиков?
Большое спасибо за ваше время.