генерация Java Soap-запроса SAAJ API - PullRequest
0 голосов
/ 24 мая 2019

Мне нужно подключиться к внешнему веб-сервису.Я использую API SAAJ для создания XML-запроса на отправку.
API SAAJ сгенерировал некоторый код по умолчанию, от которого я не знаю, как избавиться.1-й пример - это XML, сгенерированный SAAJ API, а 2-й XML - рабочий, работающий

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<env:Envelope xmlns:env="http://www.w3.org/2003/05/soap-envelope" xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <env:Body>
        <Login xmlns="*************">
            <password>[string?]</password>
        </Login>
    </env:Body>
</env:Envelope>
<Envelope xmlns="http://schemas.xmlsoap.org/soap/envelope/">
    <Body>
        <Login xmlns="*************">
            <password>[string?]</password>
        </Login>
    </Body>
</Envelope>


. Как видите, мне нужно удалить env: stuff ....

Myкод:

        // Creating a new empty SOAP message object
        SOAPMessage reqMsg = MessageFactory.newInstance(
            SOAPConstants.SOAP_1_2_PROTOCOL).createMessage();

        // Populating SOAP body
        String prefix = "";
        String uri = "*********************";
        SOAPEnvelope envelope = reqMsg.getSOAPPart().getEnvelope();
        envelope.addNamespaceDeclaration("", "http://schemas.xmlsoap.org/soap/envelope/");
        SOAPBody body = envelope.getBody();

        SOAPBodyElement service = body.addBodyElement(
            envelope.createName("Login", prefix, uri));
        SOAPElement param = service.addChildElement(
            envelope.createName("password", prefix, uri));
        param.addTextNode(password);

        SOAPHeader header = envelope.getHeader();
        header.detachNode();
         // Connecting and calling
         printSOAPRequest(reqMsg);

         doTrustToCertificates();
     SOAPConnection con 
        = SOAPConnectionFactory.newInstance().createConnection();
         SOAPMessage response = con.call(reqMsg, "*****************************");
         con.close();

РЕДАКТИРОВАТЬ: мне сказали, что служба использует SOAP 1.2, но после попытки подключения с использованием SOAP 1.1 (основное отличие xmlns=" xmlns="http://schemas.xmlsoap.org/soap/envelope/">") работает нормально

...