Ok i am now trying to create an interceptor that captures element name
and prints CDATA in the correct element.

The problem is my code intercept everyting until soap:body tag, then it stops.

I probably have it injected the wrong way in the cxf interceptro
chain. Can anyone point me in the right direction. the output is now:
<soap:Envelope 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";><soap:Body><![CDATA[]]><Insert

public class CDataXMLStreamWriter extends DelegatingXMLStreamWriter {

        private String currentElementName;

        public CDataXMLStreamWriter(XMLStreamWriter del) {
                super(del);
        }

        @Override
        public void writeCharacters(String text) throws XMLStreamException {
                boolean useCData = checkIfCDATAneededForCurrentElement();
                if (useCData) {
                        System.out.println("WritingCData" + text);
                        super.writeCData(text);
                }else {
                super.writeCharacters(text);
                }
        }

        private boolean checkIfCDATAneededForCurrentElement() {
                System.out.println("ElementName " + currentElementName);
                return true;
        }

        public void writeStartElement(String prefix, String local, String
uri) throws XMLStreamException {
                currentElementName = local;
                super.writeStartElement(prefix, local, uri);
        }
}

public class CdataWriterInterceptor extends AbstractPhaseInterceptor<Message> {

        public CdataWriterInterceptor() {
                super(Phase.WRITE);
                addBefore(BareOutInterceptor.class.getName());
        }

        @Override
        public void handleMessage(Message message) {
                System.out.println("setting altinnfix on message");
                XMLStreamWriter writer =
StaxUtils.createXMLStreamWriter(message.getContent(OutputStream.class));
                message.setContent(XMLStreamWriter.class, new 
CDataXMLStreamWriter(writer));
        }
}

-- 
Idar

Reply via email to