Как изменить исходное XML-сообщение исходящего запроса CXF?

Я хотел бы изменить исходящий запрос SOAP. Я хотел бы удалить 2 узла xml из тела конверта. Мне удалось настроить перехватчик и получить сгенерированное значение String сообщения, установленного для конечной точки.

Однако следующий код не работает, так как исходящее сообщение не редактируется должным образом. Есть ли у кого-нибудь код или идеи, как это сделать?

public class MyOutInterceptor extends AbstractSoapInterceptor {

public MyOutInterceptor() {
        super(Phase.SEND); 
}

public void handleMessage(SoapMessage message) throws Fault { 
        // Get message content for dirty editing...
        StringWriter writer = new StringWriter();
        CachedOutputStream cos  = (CachedOutputStream)message.getContent(OutputStream.class); 
        InputStream inputStream = cos.getInputStream();
        IOUtils.copy(inputStream, writer, "UTF-8");
        String content = writer.toString();

        // remove the substrings from envelope...
        content = content.replace("<idJustification>0</idJustification>", "");
        content = content.replace("<indicRdv>false</indicRdv>", "");
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        outputStream.write(content.getBytes(Charset.forName("UTF-8")));
        message.setContent(OutputStream.class, outputStream);
} 
17
задан Donal Fellows 21 November 2011 в 14:56
поделиться