Привет Я работаю над приложением, которое использует SOAP RPC-сервис. Я создал клиентский код и получаю ответ с мыльной записью от службы SOAP. Службы SOAP разработаны в старых технологиях и не поддерживают JAXB или AXIS2.Анализ ответа SOAP RPC
Мой ответ SOAPMessage, как:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soapenv:Body>
<ns1:LoginResponse soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://DefaultNamespace">
<LoginReturn xsi:type="ns1:ResultMap">
<items xsi:type="soapenc:Array" soapenc:arrayType="ns1:ResultMapItem[2]" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
<item>
<key xsi:type="xsd:string">SOAP_SERVICE</key>
<value xsi:type="xsd:string">https://somevalue</value>
</item>
<item>
<key xsi:type="xsd:string">UI_SERVICE</key>
<value xsi:type="xsd:string">https://somevalue</value>
</item>
</items>
</LoginReturn>
</ns1:LoginResponse>
</soapenv:Body>
</soapenv:Envelope>
Теперь я должен получить значение «SOAP_SERVICE» с карты и сохранить его в какой-либо переменной. Может кто-нибудь, пожалуйста, предложите мне что-то, как я могу продолжить.
Спасибо.
Добавление кода клиента.
SOAPConnectionFactory soapConnectionFactory = SOAPConnectionFactory.newInstance();
SOAPConnection soapConnection = soapConnectionFactory.createConnection();
String url = "https://serviceUrl";
String soapRequest = "requeststring";
System.out.println("soapRequest.."+soapRequest);
InputStream is = new ByteArrayInputStream(soapRequest.getBytes());
SOAPMessage request = MessageFactory.newInstance().createMessage(null, is);
SOAPMessage soapResponse = soapConnection.call(request, url);
ByteArrayOutputStream out = new ByteArrayOutputStream();
soapResponse.writeTo(out);
Вопроса слишком широк. Существует так много стандартных способов сделать это. Может быть, пришло время больше узнать о веб-сервисах на Java? ... «Я создал код клиента ...» - что вы использовали для этого? JAXB, Axis2 или что? – Vadim
SOAP-сервис разработан очень старым способом и не поддерживает JAXB или axis2. Я использовал javax.xml.soap для разработки кода клиента. – user3541321
Я знаю JAXB и AXis2, но здесь службы разработаны в очень старых технологиях, и я их потребляю в своем приложении, и снова я не могу что-то изменить в служебном коде. – user3541321