Одним из способов может быть получение документа и запуск его через XSLT-преобразование.
Вы можете получить документ в handleMessage вашего перехватчика, вызвав
@Override
public void handleMessage(SoapMessage message) throws Fault{
SOAPMessage saaj = message.getContent(SOAPMessage.class);
Document doc = saaj.getSOAPPart(); // This actually returns a SOAPPart instance but it does implement the w3c Document interface
//play around with the document, doc is a reference so any changes made to that instance
//will be forwarded to the rest of the chain
}
осторожно, хотя этоесли у вас есть защита, такая как подпись XML, которая должна быть выполнена для содержимого мыла, вы должны убедиться, что ваш перехватчик встречается ДО применения подписи, в противном случае вы лишите их законной силы.
Чтобы поиграться с синхронизацией перехватчика, выМожно указать этап, на котором он будет работать.CXF также должен соблюдать порядок, в котором вы будете их настраивать, если они будут выполняться на одной и той же фазе.
, но не поверьте мне на слово ... проверьте их для получения дополнительной информации
отладка с помощью исходного кода CXF также очень помогла мне понять, как это работает
---- РЕДАКТИРОВАТЬ ----
(спасибо Даниэль: -)
Чтобы это работало, вам нужно настроить SAAJOutInterceptor в вашем стеке.Вы можете добавить его вручную или просто сделать его частью вашего перехватчика. Вот пример перехватчика, который в значительной степени делает то, что вы хотите.