Отправка недопустимых символов XML в запросе на мыло - PullRequest
3 голосов
/ 19 марта 2010

Я пытаюсь отправить специальные (&, ' (одинарные кавычки)) символы в запросе на мыло. Я использую ось 1.4. Клиент веб-сервиса находится на сервере weblogic, а сервер веб-сервиса - это мэйнфрейм ibm (программа COBOL).

Данные запроса от клиента содержат специальный символ (& символ), который преобразуется в &

Я пытался заключить его в CDATA как

<![CDATA[Some Name & Some Data ]]> который был преобразован в

&lt;![CDATA[Some Name &amp; Some Data]]&gt; 

Клиент веб-сервиса генерируется из wsdl, поэтому я не мог использовать CDATA api для создания запроса. Я могу установить его как строковое значение, и оно конвертируется.

Любая помощь по этому вопросу будет принята с благодарностью. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация по этому вопросу.

1 Ответ

7 голосов
/ 20 марта 2010

Клиентские заглушки веб-службы делают кодировку XML для вас. Веб-служба ожидает XML, и она кодирует & и ' в ссылки на сущности, так что вы будете отправлять действительный XML.

Для синтаксического анализатора XML он "увидит" &amp; как &, и у вас нет проблем.

Если сервер не может обработать ссылки на сущности, то «веб-служба» COBOL не делает то, что должна. Это затрудняет для вас (и основанных на стандартах инструментов) создание клиентских заглушек из WSDL, который по сути является контрактом, описывающим правила для формата данных и обмена ими.

Какой смысл предоставлять WSDL и сервис SOAP, если он не соответствует предписанным правилам интерфейса?

...