Проблема с использованием SOAPPart.createCDATASection в приложении SpringBoot - PullRequest
0 голосов
/ 20 сентября 2019

Мы разрабатываем приложение для вызова веб-службы поставщика, если поставщик ожидает строку XML в сегменте CDATA.Как показано ниже

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <AppsAcord:tem>
            <AcordXML:tem><![CDATA[<element>text</element>]]></AcordXML:tem>
        </AppsAcord:tem>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Код, который мы написали, прекрасно работает в автономном режиме.

    public static void main(String[] args) {
        try{
            MessageFactory factory = MessageFactory.newInstance();
            SOAPMessage soapMsg = factory.createMessage();
            SOAPPart part = soapMsg.getSOAPPart();

            SOAPEnvelope envelope = part.getEnvelope();
            SOAPHeader header = envelope.getHeader();
            SOAPBody body = envelope.getBody();
            SOAPBodyElement element = body.addBodyElement(envelope.createName("tem", "AppsAcord", null));
            SOAPBodyElement element2 = body.addBodyElement(envelope.createName("tem", "AcordXML", null));
            element.appendChild(element2);
            CDATASection cdata = part.createCDATASection("<![CDATA[<element>text</element>]]>");
            element2.appendChild(cdata);

            soapMsg.writeTo(System.out);
            System.out.println();
            System.out.println("SOAP msg created");

        }catch(Exception e){
            e.printStackTrace();
        }

    }

Однако, как только мы поместим его в приложение с загрузочной пружиной, результат будет выглядеть примерно так

<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
    <SOAP-ENV:Header/>
    <SOAP-ENV:Body>
        <AppsAcord:tem>
            <AcordXML:tem>&lt;element&gt;text&lt;/element&gt;</AcordXML:tem>
        </AppsAcord:tem>
    </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Любые мысли о том, почему результат будет другим и что мы можем сделать, чтобы решить эту проблему.

Майк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...