Подтвердить что ты не робот

В чем разница между параметрами wsdl и? SingleWsdl

Мой поставщик сообщений дает мне два разных типа WSDL.

http://my.amazonaws.com:8000/webservice/?wsdl
http://my.amazonaws.com:8000/webservice/?singleWsdl

Первый - это встроенный WSDL. Невозможно использовать его для создания пакетов WSDL2java и НЕ МОЖЕТ использовать JAX-WS для создания соединения.

Второй - это одиночный WSDL. Он может генерировать пакеты Java с CXF 3.0 WSDL2java и может использовать JAX-WS для создания соединения. Он работает очень хорошо.

Пожалуйста, дайте мне знать, в чем разница между этими двумя типами WSDL.

4b9b3361

Ответ 1

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

Суффикс конечной точки веб-службы с помощью ?wsdl получит файл WSDL. WSDL может быть сгенерирован каркасом во время выполнения на основе кода скелета веб-сервиса или может быть фактическим физическим файлом, который сервер просто отправляет обратно, когда указан параметр URL.

WSDL содержит XML-схему, которая может быть указана либо внутри самого WSDL, либо как отдельные файлы, которые импортируются WSDL. И теперь возникает проблема...

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

Но некоторые провайдеры даже не беспокоились, поэтому клиентам приходилось писать хаки для разбора WSDL или им приходилось загружать все файлы, собирать их вручную в один файл и использовать их вместо этого.

С течением времени люди признавали это как проблему и рамки, адаптированные для предоставления полного WSDL, а не для импорта. Но это породило еще одну проблему. Изменение того, что возвратил URL-адрес ?wsdl, может повредить все созданные хаки, чтобы исправить проблему импорта. По этой причине было выбрано другое соглашение, чтобы вернуть полный WSDL: ?singleWsdl.

Итак, существуют фреймворки, которые генерируют полный WSDL, некоторые из которых генерируют его с импортом, некоторые из них позволяют указать фактический физический файл, некоторые из которых поддерживают соглашение ?singleWsdl, а некоторые - нет. Не относящийся к этому вопросу, но только для завершения, существует также соглашение ?wsdl2, которое дает вам определение WSDL 2.0 (?wsdl получает WSDL 1.1). Некоторые фреймворки поддерживают ?wsdl2, некоторые - нет.

Я предполагаю, что проблемы, вызванные импортом Schema, но без самих WSDL, я не могу сказать. Надеюсь, что эти детали помогут вам лучше идентифицировать проблему.