“Java формирует генератор” из данного wsdl файла

Я пытаюсь разработать генератор формы в Java, в котором пользователи смогут записать wsdl URL и получить список операций, поддерживаемых веб-сервисом в ComboBox. Когда пользователь выберет один из объектов в ComboBox затем, он будет видеть, что поля формы генерировали использование wsdl URL.

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

Я не пытаюсь создать классы Java веб-сервиса, я должен генерировать поля формы для любого wsdl URL.

Например, вот веб-сервис, который обеспечивает 9 операций

http://services.aonaware.com/DictService/DictService.asmx

и wsdl файл здесь:

http://services.aonaware.com/DictService/DictService.asmx?WSDL

Я должен знать, какие части wsdl файла должны быть проанализированы, любая справка ценилась бы.

7
задан fsonmezay 23 May 2011 в 11:46
поделиться

4 ответа

Чтобы начать работать с WSDL и понять, как построен такой документ, возможно, вам стоит взглянуть на какую-нибудь статью, например, Понимание WSDL или WSDL Tutorial или любой другой начинающий ресурс, который вы найдете в Google.

Теперь, чтобы ответить на ваш вопрос в упрощенном виде, вы должны начать с элемента portType, который содержит:

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

Например, в вашем случае:

<wsdl:operation name="DictionaryList">
  <wsdl:documentation>Returns a list of available dictionaries</wsdl:documentation>
  <wsdl:input message="tns:DictionaryListSoapIn"/>
  <wsdl:output message="tns:DictionaryListSoapOut"/>
</wsdl:operation>

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

Определение абстрактного сообщения, которое может состоять из нескольких частей, каждая часть может быть различного типа.

Здесь, например, входным сообщением предыдущей операции является:

<wsdl:message name="DictionaryListSoapIn">
  <wsdl:part name="parameters" element="tns:DictionaryList"/>
</wsdl:message>

Затем, чтобы понять содержание сообщения, посмотрите на типы :

Контейнер для определений абстрактного типа, определенный с помощью XML-схемы

Здесь элемент DictionaryList определен как пустой тип completeType:

<s:element name="DictionaryList">
  <s:complexType/>
</s:element>

Как я уже говорил, это действительно очень упрощенный ответ, так как WSDL не может быть обобщена в четырех параграфах и, честно говоря, то, что вы собираетесь делать, на самом деле не является тривиальной задачей. Позвольте мне перефразировать это: будет кровь! Итак, даже если эти несколько строк могут помочь вам (очень немного) начать работу, я определенно не буду начинать такой проект с нуля, а воспользуюсь существующей библиотекой или инструментом (например, Xydra или Eclipse XML Forms Generator или . Кстати, я заметил, что вы решили использовать Axis, и что вы не хотите генерировать классы Java, но я все равно горячо рекомендую не использовать Axis. На самом деле, я бы использовал JAX-WS RI, который поставляется в комплекте с Java 6 и является гораздо более простым API. На всякий случай, чтобы сгенерировать классы Java, просто выполните:

$ mkdir generated
$ wsimport -d generated http://services.aonaware.com/DictService/DictService.asmx?WSDL
8
ответ дан 6 December 2019 в 21:14
поделиться

Это не тривиальный проект, и Вы можете обнаружить, что библиотека, которая уже делает это, будет Вашим лучшим подходом, но местом для начала будет отображение атрибутов HTML-компонентов FORM, а события Min/Max Occues - JavaScript.

Скорее всего, будет намного проще написать Ваш FORM, исходя из Вашего понимания WSDL. Что касается чего-то, что может помочь, вы можете использовать что-то вроде

http://www.soapui.org/

Или для чего-нибудь веб основанного (что я только что протестировал с помощью вашей WSDL и это работает), вы можете попробовать

http://www.soapclient.com/soaptest.html

Я знаю, что эти две ссылки могут быть полностью вне базы для того, что вы пытаетесь сделать, так что удачи вам в ваших попытках справиться с этой задачей :)

.
1
ответ дан 6 December 2019 в 21:14
поделиться

вот хороший учебник Томаса Байера о "Чтении файла wsdl". http://www.predic8.com/wsdl-reading.htm

2
ответ дан 6 December 2019 в 21:14
поделиться

Я не могу говорить за WSDL сторону, но вы можете рассмотреть Metawidget за сторону генерации формы: как только вы извлекли и разобрали WSDL, вы можете вставить ее в Metawidget и получить много UI goodness бесплатно (поддержка разных платформ, разных библиотек виджетов и т.д.)

Regards,

Richard.

1
ответ дан 6 December 2019 в 21:14
поделиться
Другие вопросы по тегам:

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