Использование веб-службы SOAP WSDL со сложными типами из Oracle 10 - PullRequest
0 голосов
/ 21 октября 2011

Вслед за этой записью от сентября 2008 года, касающейся «Использование веб-сервисов из Oracle PL / SQL», мне интересно, есть ли какая-нибудь новая информация?Я также нашел вопрос на oracle.com, по сути, задающий тот же вопрос, но прямых ответов не было.

Я пытаюсь использовать службу из функции / хранимой процедуры Oracle PL / SQL.Сервис содержит метод с 6 параметрами, 5 из которых являются пользовательскими типами.Все примеры, которые я могу найти для SOAP_API, предполагают, например, простые типы int или string.

В настоящее время у нас нет собственного ESB для использования веб-сервисов SOAP от Oracle, поэтому мы можем обрабатывать XMLсложных типов не существует.Я использовал SOAP_API для простых типов (примеры здесь и здесь ), но как только мы перейдем к более сложным типам, мы действительно останемся без простого варианта?Я бы потратил некоторое время на деконструкцию WSDL и создание типа вручную, если бы думал, что это сработает, но я скептически и не решаюсь тратить часы на это, когда не верю, что это все равно будет работать.Возможно, SOAP_API слишком ограничен?Есть ли другая опция, кроме SOAP_API и UTL_DBWS , которая также кажется чрезвычайно сложной и имеет аналогичные ограничения?

Спасибо за любое направление!

1 Ответ

1 голос
/ 21 октября 2011

@ Макартей, мне не повезло заставить работать utl_dbws. Первоначально я начал использовать soap_API, но обнаружил, что легче начать работу, просто используя utl_http и кодируя мои собственные пакеты для выполнения работы.

Я могу засвидетельствовать, что можно использовать сложные типы, я использовал эту ссылку во время начала работы.

как наихудший сценарий, вы можете поступить так, как указано в статье, и продолжить свой путь оттуда - в качестве подтверждения концепции (например, вручную кодировать вызов мыла следующим образом:

<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope">
  <soap12:Body>
    <GetCityForecastByZIP xmlns="http://ws.cdyne.com/WeatherWS/">
      <ZIP>' || l_zip || '</ZIP>
    </GetCityForecastByZIP>
  </soap12:Body>
</soap12:Envelope>';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...