AXiS2 - проблема в возвращении строкового значения.<и> преобразуются в <и> - PullRequest
1 голос
/ 10 августа 2011

Я написал простой веб-сервис, который принимает строку в качестве аргумента и возвращает строку в качестве вывода.

Сервис примерно такой:

@WebService(name = "MyWebService", serviceName = "MyWebService", portName = "WS")
@SOAPBinding(style = SOAPBinding.Style.DOCUMENT, use = SOAPBinding.Use.LITERAL, parameterStyle = SOAPBinding.ParameterStyle.WRAPPED)
public class MyWebService {

    @WebMethod(action = "inputString")
    @WebResult(name = "resultString")
    public String serviceMethod(
            @WebParam(mode = WebParam.Mode.IN, name = "inputString") String inputString) {
        resultString ="<?xml version='1.0' encoding='UTF-8'?><Element><InnerElement>ElementValue</InnerElement></<Element>"
        System.out.println(resultString);
        return resultString;
    }

}

На стороне клиента я получаю:

&lt;?xml version='1.0' encoding='UTF-8'?&gt;&lt;Element&gt;&lt;InnerElement&gt;ElementValue&lt;/InnerElement&gt;&lt;/&lt;Element&gt;

Этот вход используется в стороннем парсере, который пытается найти <или>, и мое приложение разрывается.

Кто-нибудь сталкивался с этой проблемой? В чем может быть проблема и обойти? Предложения приветствуются.

Ответы [ 2 ]

3 голосов
/ 11 августа 2011

Признаюсь, я не трачу много времени на его изучение, но в прошлый раз, когда я посмотрел, не было никакого хорошо определенного способа вернуть XML-документ как часть другого XML-документа, что, в основном, и вы пытаетесьделать здесь.Из того, что я помню при чтении, даже в разделах CDATA могли быть проблемы.То, что вы видите, является стандартной кодировкой для этих символов в XML.Если я правильно помню, это заголовок XML, который испортил разделы CDATA, но опять же, прошло много времени с тех пор, как я на него смотрел.

HTH

0 голосов
/ 11 августа 2011

Возможно, в WSDL у вас есть xsd: string, поэтому он должен преобразовывать специальные символы '<', '>', потому что это только строка.Измените документ wsdl на ex.XSD:. любой

...