Как сохранить wsdl в файл из браузера

Обновлено: 03.07.2024

Я хочу получить файл WSDL для веб-сервиса, и единственное, что у меня есть, - это его URL (например, webservice.example/foo).

Если я использую URL напрямую, то будет доставлен только ответ об ошибке.

4 ответа

Путем постфиксации URL с ?WSDL

Если URL-это, например,:

И wsdl будет доставлен.

чтобы получить WSDL ( Web Service Description Language ) из веб-службы URL.

Это возможно из SOAP веб-сервисов:

чтобы получить WSDL, нам нужно только добавить ?WSDL , например:

У меня есть реализация веб-сервиса, сгенерированная с помощью wsimport из A WSDL. Эта служба развернута на сервере Tomcat в веб-приложении Spring. Конфигурационный файл spring (только часть веб-сервиса) выглядит следующим образом <wss:binding url=/fooService> <wss:service>.

Чтобы загрузить wsdl из url с помощью командной строки разработчика для Visual Studio, запустите его в режиме администратора и введите следующую команду:

Теперь вы можете использовать загруженный wsdl в своем проекте по своему усмотрению.

Похожие вопросы:

Я работаю над проектом, в котором у меня есть модуль веб-сервиса и веб-модуль. Я хочу, чтобы клиент был сгенерирован на основе файла wsdl веб-сервиса, и я хочу, чтобы файл wsdl был сгенерирован при.

Я новичок в веб-сервисах, даже после просмотра большого количества видео и чтения большого количества учебников по WSDL я не могу понять, как получить URL для метода веб-сервиса от WSDL. файл WSDL.

У меня есть реализация веб-сервиса, сгенерированная с помощью wsimport из A WSDL. Эта служба развернута на сервере Tomcat в веб-приложении Spring. Конфигурационный файл spring (только часть.

Можно ли сгенерировать клиент веб-службы java с помощью файла WSDL(из локальной файловой системы)? Я работаю с siebel и Java. siebel developer пришлите мне файл WSDL, мне нужно сгенерировать клиент.

У меня есть файл WSDL, и для локального тестирования мне нужно создать макет веб-сервиса. Пожалуйста, не рекомендуйте SoapUI . Кто-нибудь может помочь, как создать макет веб-сервиса в Java с помощью.

Обмен данными с конфигурацией через веб-сервисы

Внимание! Данный функционал доступен в "Библиотеке стандартных подсистем", начиная с версии 2.3.1.62.

Для обмена данными через формат EnterpriseData у конфигураций, использующих "Библиотеку стандартных подсистем", есть два веб-сервиса:

  • EnterpriseDataUpload – упрощенный вариант для загрузки данных в информационную базу из сторонних приложений. Не требует специальных настроек на стороне конфигурации (кроме развертывания собственно веб-сервиса); однонаправленный обмен данными – ТОЛЬКО импорт данных в информационную базу.
  • EnterpriseDataExchange – для двустороннего обмена данными между конфигурацией и сторонним приложением. Для работы с ним необходима настройка обмена данными на стороне конфигурации.

Собственно задача обмена данными включает в себя две подзадачи:

  • Составление корректного XML-файла в формате EnterpriseData,
  • Вызов веб-методов в правильной последовательности.

Особенности работы методов веб-сервисов

Большинство методов обоих веб-сервисов имеют выходной параметр – строку ErrorMessage. В случае если внутри конфигурации произошла ошибка, связанная с бизнес-логикой – в эту строку будет записана информация об этой ошибке. Если ошибок в процессе работы метода не было – в строку ErrorMessage будет помещена пустая строка. Если же в процессе работы метода возникла системная ошибка (например, на стороне конфигурации не удалось разархивировать полученный архив) – веб-метод сгенерирует исключение (exception).

Большинство методов обоих веб-сервисов возвращают строки, но в текущей версии возвращаемые строки всегда пустые (кроме EnterpriseDataUpload.PutDataActionResult – он возвращает статус обработки данных на стороне конфигурации – “Active”, “Completed” либо “Failed”).

Что нужно для работы

На стороне конфигурации

На стороне конфигурации должны быть развернуты веб-сервисы EnterpriseDataUpload и EnterpriseDataExchange соответствующих версий (в данном случае была использована версия 1.0.1.1). При открытии этих двух URL-адресов в браузере (нужно подставить правильное для вашей инсталляции «1С:Предприятия» имя веб-сервера и публикации):

должны выводиться WSDL-описания сервисов:


  • В Solution Explorer в контекстном меню узла References выбрать команду Add Service Reference.
  • В нижнем левом углу появившегося диалога нажать кнопку Advanced.
  • В нижнем левом углу появившегося диалога нажать кнопку Add Web Reference.

Использовалась среда разработки Eclipse 4.4.2. Для генерации кода по WSDL файлов веб-сервисов применялась утилита wsdl2java из фреймворка Apache CXF 2.7.16.

Простой обмен данными с конфигурациями с помощью формата EnterpriseData

Объект может содержать в себе ссылки на другие объекты (например, документ «Акт выполненных работ» может содержать в себе одну или несколько ссылок на номенклатуру). В этом случае, если мы импортируем данные в информационную базу, все объекты, на которые мы ссылаемся из «родительского» объекта, должны либо уже существовать в системе, либо их описание должно содержаться в том же XML файле.

Если нам необходимо удалить какой-то объект, в коллекцию Body надо добавить элемент типа «УдалениеОбъекта», и в этом элементе сослаться на удаляемый объект (см. описание типа «УдалениеОбъекта» в схеме EnterpriseData_X_Y_Z.xsd).

С помощью формата EnterpriseData нам доступны операции создания, обновления и удаления объектов. На данный момент для корректной загрузки данных в типовые решения все объекты должны содержать заполненный элемент «Ссылка» из элемента «Ключевые свойства» (GUID в форме строки). Это первичный ключ объекта. Конфигурации ведут себя следующим образом:

  • Если в системе нет объекта с ключом из поля «Ссылка» - создается новый объект.
  • Если в системе уже есть объект с ключом из поля «Ссылка» - существующий объект обновляется новыми данными, пришедшими в XML.
  • Если пришел элемент типа «УдалениеОбъекта» - объект с соответствующим ключом удаляется из системы.

Веб-сервис EnterpriseDataUpload

EnterpriseDataUpload – интерфейс исключительно для импорта данных в формате EnterpriseData в конфигурацию из сторонних приложений. Условия задачи: у нас есть XML файл с данными в формате EnterpriseData, надо передать его в конфигурацию и убедиться в том, что на стороне конфигурации данные успешно получены.

Алгоритм работы следующий:

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

Реализуем функцию, которая принимает такие входные параметры:

  • URL Веб-сервиса,
  • Имя пользователя для соединения с Веб-сервисом,
  • Пароль.

Путь до архивированного файла с данными. Если архив умещается в одном файле – это имя файла с полным путем, включая расширение (например, “C:\Exchange\data.zip”). Если же архив разбит на несколько частей, то это будет имя любого из файлов без расширения и точки (например, “C:\Exchange\data”). Предполагается, что это последовательность файлов с расширениями “.001”, “.002” и т.д.

Реализация функции (в виде статического метода) в листинге ниже. Диагностическая информация выводится в консоль.

При разработке приложений с глобальным взаимодействием уже давно известна архитектура SOA (Service Oriented Architecture).

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

Существует достаточно большое количество реализации этой архитектуры. Одним из видов такой реализации является технология основанная на связке специфицированных консорциумом w3c таких технологий, как веб-сервисы и протоколы SOAP, WSDL, WADL и т.п., которые в свою очередь основаны на XML. Уже достаточно длительное время эта технология интегрирована в платформу 1с Предприятие. Благодаря этому 1с предприятие может служить "сервером приложений", поставщиком сервисов, можно организовать взаимодействие между 1с, и приложениями, написанными на других платформах, можно организовать взаимодействие между различными системами на базе 1с и так далее.

web-сервисов и WSDL, каковую архитектуру используют туристические агентства, гостиницы, ритейлеры и т.п.

Часть 1. Здравствуй, Name!

Есть достаточное количество противников SOA и сторонников других технологий, как и тех, кто недолюбливает 1С. Однако существующая технология разработки на платформе 1с позволяет приступить к разработке и получить готовый результат довольно быстро при весьма поверхностном знакомстве с подробностями спецификаций SOA, WSDL и веб-сервисов, по сравнению со многими другими известными продуктами как от гигантов софтверной индустрии, так и с бесплатными open-source решениями, что само по себе не является ни плюсом ни минусом, но может заставить задуматься.

Чтобы окончательно в этом убедиться я твердо решил в качестве примера реализовать при помощи web-сервисов хрестоматийный пример, на котором большинство студентов, изучавших вычислительную технику и программирование, практиковались ещё во время учебы в ВУЗ-ах, а именно игру «Жизнь» - клеточный автомат, придуманный английским математиком Джоном Конвеем в 1970 г.

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

Для начала надо всё же установить веб-сервер, который будет обрабатывать запросы, это может быть Apache или IIS. Я предпочитаю Apache. Поскольку

Теперь создадим пустую файловую базу, в ней роль «Полная» с полными правами на все группы объектов и пользователя Admin, назначив ему эту единственную роль.

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

Минус файловой версии - невозможность отладки серверных процедур.

Теперь приступим к реализации. В группе web-сервисы создадим новый объект с простым именем WebServiceTest, операцией с именем GetHelloString, которую будет обрабатывать функция Привет(Name) и параметром Name. И операция и параметр добавляются командой "добавить". Тип значения параметра Name - string (берется из пространства имен


Тело функции Привет() модуля сервиса будет содержать только одну строку:

Осталось только опубликовать сервис. Заходим в меню администрирование -> публикация на web-сервере. Откроется форма, в которую мы введем параметры публикации. Имя публикации должно совпадать с именем каталога на web-сервере.

В поле «Каталог» вводим путь к нашему каталогу на web-сервере, который мы создали ранее, то есть C:\Apache24\htdocs\WebServices\

Остальные параметры вы можете рассмотреть на рисунке Рис. 3


перезапустим web-сервер, используя Apache monitor (оснастку служб Windows, закладку «службы» диспетчера задач, командную строку, bash, монитор процессов - что там у вас есть под рукой) чтобы данные публикации были считаны Апачем заново. Обновление публикации и перезапуск веб-сервера нужно делать после каждого сохранения конфигурации, связанного с изменениями веб-сервиса.

Результат должен выглядеть как-то так:

Клиентская часть будет содержать чуть больше кода. Можно обращаться к сторонним сервисам двумя способами:

- использовать ws-ссылку (объект метаданных)

- создать ws-определение программно

Первый способ означает, что нам нужна ещё одна конфигурация, поэтому сейчас используем второй. Разница лишь в том, что мы создадим объект программно.

Создадим новую обработку с реквизитом Name, разместим его на форме, добавим форме команду Тест с двумя поцедурами, на клиенте и на сервере.

Параметры конструктора объекта WSПрокси ИмяСервиса и ИмяТочкиПодключения можно найти в XML-тексте, который возвращает наш сервис по URI А именно в элементе <service name="ИмяНашегоСервиса">

где ИмяСервиса — это атрибут Name этого элемента, то есть <service name="WebServiceTest">

ИмяТочкиПодключения — это атрибуты Name вложенных элементов

Обычно мы имеем две точки для разных версий SOAP, в нашем случае они называются

WebServiceTestSoap и WebServiceTestSoap12 — можно использовать любой из них.

Если вы импортируете документ WSDL , описательный класс генерируется на основе содержания документа WSDL . Общедоступные прототипы методов, функций и подстановок в классе соответствуют операциям Web -сервиса, определенным для первого элемента <port> первого элемента <service> в документе WSDL . Другие классы или типы ссылаются на прототипы методов, которые, возможно, также будут сгенерированы на основании содержимого документа WSDL вместе с общедоступными элементами данных. Если вы измените прототип интерфейса, соответствующий документ WSDL также изменится, когда Web -сервис будет сохранен. Вы можете отслеживать подобные изменения с помощью свойства "Warn if the WSDL interface is modified " (Предупреждать, если интерфейс WSDL был изменен).

Бизнес-партнеры компании ITSO Electronics , а, возможно, и покупатели, в свою очередь , могут обеспечивать компанию документом WSDL , который она может использовать для создания Web -сервисов. Вы можете импортировать существующий документ WSDL , чтобы сгенерировать каркас Web -сервиса. Каркасный код соответствует описанию Web -сервиса. Затем вам необходимо добавить код реализации.

Для того чтобы импортировать документ WSDL , выполните следующее:

  1. Откройте базу данных ITSO Web Services в Domino Designer, затем выберите Shared Code => Web Services .
  2. Щелкните по кнопке Import WSDL и выберите файл WSDL , который хотите импортировать. В нашем сценарии мы импортировали файл, который экспортировали в предыдущем разделе (см. рис. 3.14).

Импортирование документа WSDL

Импортирование документа WSDL: окно свойств Web Service


увеличить изображение
Рис. 3.15. Импортирование документа WSDL: окно свойств Web Service Пример 3.11. Каркасный код, сгенерированный после импортирования документа WSDL

3.9 Работа с исключениями и ошибками в Web-сервисах

Замечание Любые ошибки в методе описания сервиса на языке LotusScript (т. е. любой основной класс или подкласс WS_FAULT ) должны фигурировать в конце списка параметров метода.

Ошибки для метода описания сервиса на языке Java возникают в стандартных предложениях Java .

Для получения дополнительной информации о том, как работать с ошибками, используя язык LotusScript см. "Улучшение работы приложения фирмы ITSO Electronics с помощью Web-сервисов" , "Использование Web -сервисов с помощью LS2J".

3.10 Безопасность в Web-сервисах

В настоящий момент не существует общепринятых спецификаций безопасности Web -сервисов. Поэтому разработчики могут либо создавать службы, которые не используют подобных возможностей, либо разрабатывать специальные узкопрофильные программы, которые предположительно смогут решать проблемы функциональной совместимости.

Web -сервис Lotus Domino 7 обладает теми же возможностями защиты, что и агент . Уровень защиты Web -сервиса устанавливается в закладке Security ( Безопасность ) окна свойств Web service . В приведенном ниже списке описываются параметры, доступные в закладке Security .

  • Run as web user (Запускать от лица Web-пользователя): код Java или LotusScript запускается с реальным именем пользователя, который запустил Web-сервис.
  • Run on behalf of (Запускать от лица): код Java или LotusScript запускается на полномочиях определенного пользователя. Тем не менее, подписчик Web-сервиса должен обладать неограниченными правами на сервер или правом запускать Web-сервисы от лица любого пользователя.
  • Set runtime security level (Установить уровень защиты выполнения) (один из перечисленных ниже):
    • Do not allow restricted operations (Не разрешать выполнение операций с ограниченным доступом);
    • Allow restricted operations (Разрешать выполнение операций с ограниченным доступом);
    • Allow restricted operations with full administration rights (Разрешать выполнение операций с ограниченным доступом с полными правами администрирования).

    3.11 Использование Web-сервисов с помощью Java

    Для того чтобы проиллюстрировать использование Web -сервисов, в нашем сценарии мы создали отдельную базу данных в приложении ITSO Electronics , которую назвали WS Consumer . В этой базе данных содержится агент , который будет использовать сложный Web -сервис, созданный нами ранее.

    Замечание Web-сервисы могут быть добавлены к любой базе данных Lotus Notes и Domino. Но для достижения целей, поставленных в этой книге, все Web-сервисы добавлены к отдельным базам данных в приложении ITSO Electronics, которые называются webservices.nsf и wsconsumer.nsf .

    Приведенная ниже последовательность действий наглядно иллюстрирует создание агента, использующего Web -сервис.

    Окно свойств ConsumerWS Agent

    Щелкните по кнопке Edit Project (Изменить проект), откроется окно Java Agent Files (см. рис. 3.17). Перейдите к нужной директории библиотеки SOAP LIB , в нашем случае эта директория находилась по следующему пути: c:\soap\soap-2_3_1\lib . В качестве типа файла выберите Archive (Архивный), щелкните по кнопке Add/Replace File(s) (Добавить/Заменить файлы), далее нажмите ОК .

    Читайте также: