Как удалить (<) и ([CDATA [[) из SOAP ответа с использованием Java? - PullRequest
0 голосов
/ 11 января 2012

, пожалуйста, помогите мне решить проблему ниже, я пытаюсь в течение долгого времени (3 недели), но не могу получить правильное разрешение. Я должен завершить его как можно скорее, так как мой вывод многих веб-сервисов зависит от пользовательской строки возврата.

Я написал код Java с использованием javax.jws.

import javax.jws.WebMethod;
import javax.jws.WebParam;
import javax.jws.WebResult;
import javax.jws.WebService;
import javax.jws.soap.SOAPBinding;
import javax.jws.soap.SOAPBinding.Style;
import javax.jws.soap.SOAPBinding.Use;

    String returnStr = null;

    String responseCodeStart = "<responseCode>";
    String responseCodeEnd = "</responseCode>";
    String responseMessageStart = "<responseMessage>";
    String responseMessageEnd = "</responseMessage>";

Возврат пользовательской строки в JAVA в ответ SOAP / строку вывода :::::::::

 returnStr = "\r\n" + responseCodeStart + "1000" + responseCodeEnd + "\r\n" + responseMessageStart + "Registration successful>>" + responseMessageEnd + "\r\n";

Проблема:

1)  I am getting (&lt;) tag instead of (<)
2) I am getting ([CDATA[[) tag in response.

ОТВЕТ НА МЫЛО:

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
   <soap:Body>
      <ns2:registerUserResponse xmlns:ns2="http://impl.timecapsule.com/">
         <return>&lt;responseCode>1102&lt;/responseCode>
&lt;responseMessage> [!CDATA[[Please provide username] &lt;/responseMessage></return>
      </ns2:registerUserResponse>
   </soap:Body>
</soap:Envelope>

* Требуемое разрешение: *

    1) &lt; to remove
    2) CDATA to remove

I want to retrieve it as XML object instead of String using java code.


THANKS

1 Ответ

2 голосов
/ 11 января 2012

Используйте Framework, если вы хотите предоставлять или использовать веб-сервис через SOAP. Вам не нужно использовать начальные или конечные теги, фреймворк с этим справится.

String responseCodeStart = "<responseCode>";
String responseCodeEnd = "</responseCode>";
String responseMessageStart = "<responseMessage>";
String responseMessageEnd = "</responseMessage>";

Если вы возвращаете строку (не число внутри класса), кодировки верны. Вы возвращаете строку со специальными закодированными символами. Они должны быть закодированы таким образом. в противном случае вы создадите искаженный XML.

Учебник по javax.jws в Oracle Webservice-Tutorial

...