Использование CXF-перехватчика Я хотел бы добавить некоторый узел к XML-файлу, отправляемому на сервер.Я создал перехватчик (см. Ниже), который принимает сообщение как узел DOM, изменяет его и записывает обратно в объект сообщения.
К сожалению, код не работает должным образом - XML-файл, отправленный насервер не содержит «magicWord».ИМХО Я использую не ту фазу для этого.
Итак, вопрос: как я могу изменить исходящий запрос веб-сервиса, используя синтаксис org.w3c.dom.Node?
package dummy;
import org.apache.cxf.message.Message;
import org.apache.cxf.phase.AbstractPhaseInterceptor;
import org.apache.cxf.phase.Phase;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
class DummyInterceptor extends AbstractPhaseInterceptor {
String magicWord = "abc";
public DummyInterceptor() {
super(Phase.PRE_PROTOCOL);
}
public void handleMessage(Message message) {
Document document = (Document) message.getContent(Node.class);
NodeList nodes = document.getElementsByTagName("wsse:Security");
if (nodes.getLength() == 1) {
Node wsseSecurityNode = nodes.item(0);
wsseSecurityNode.appendChild(document.createTextNode(magicWord));
}
message.setContent(Node.class, document);
}
}