Java Webservice Client (лучший способ) - PullRequest
82 голосов
/ 28 августа 2010

У меня есть сторонний WSDL, мне нужно написать код на Java для клиента веб-службы, чтобы вызывать операции в стороннем WSDL. Прямо сейчас я сгенерировал клиентскую заглушку с помощью инструмента WSDL2JAVA от Axis и использовал XMLbeans для привязки данных.

  1. Каков наилучший подход к выполнению этой JAVA?
  2. Я читал о SAAJ, похоже, это будет более детальный подход?
  3. Есть ли другой способ, кроме использования инструмента WSDL2Java, для генерации кода. Возможно wsimport в другом варианте. Какие плюсы и минусы?
  4. Может кто-нибудь прислать ссылки на несколько хороших учебников по этим темам?
  5. Какие опции нам нужно использовать при генерации кода с использованием WSDL2Java?

Сначала я использовал некоторые из основных вещей. Теперь у меня есть эти варианты

C:\axis2-1.5.1\bin>wsdl2java -uri  mywsdlurl  -o client -p somepackage -d xmlbeans -s -t -ssi

Ответы [ 4 ]

160 голосов
/ 28 августа 2010

Каков наилучший подход для выполнения этой JAVA?

Я бы лично НЕ использовал Axis 2, даже для разработки на стороне клиента.Вот почему я держусь от него подальше:

  1. Мне не нравится его архитектура и я ненавижу его контрпродуктивную модель развертывания.
  2. Я считаю, что это проект низкого качества.
  3. Мне не нравятся его характеристики (см. этот тест для JAX-WS RI ).
  4. Это всегда кошмар для настройки зависимостей (я использую Maven и I всегда приходится бороться с миллионом зависимостей) (см. # 2)
  5. Ось отстойная, а Ось2 не лучше.Нет, это не личное мнение, есть консенсус.
  6. Я страдал один раз, никогда больше.

Единственная причина, по которой Axis все еще существует, - это IMO, потому что он используется в Eclipse с незапамятных времен.Слава богу, это было исправлено в Eclipse Helios, и я надеюсь, что Axis2 наконец умрет.Есть только намного лучшие стеки.

Я читал о SAAJ, похоже, это будет более детальный подход?

Для чего?

Есть ли какие-нибудьдругой способ, чем использовать инструмент WSDL2Java, для генерации кода.Может быть, wsimport в другом варианте.Какие плюсы и минусы?

Да!Предпочитайте стек JAX-WS, например CXF или JAX-WS RI (вы также можете прочитать о Metro, Metro = JAX-WS RI + WSIT), они просто изящнее, проще, проще в использовании.В вашем случае я бы просто использовал JAX-WS RI, который включен в Java 6 и, таким образом, wsimport.

Может ли кто-нибудь прислать ссылки для некоторых хороших учебников по этим темам?1052 *

Это еще один профессионал, для JAX-WS существует множество (хорошего качества) учебных пособий, см., Например:

Какие есть вариантынам нужно использовать при создании кода с использованием WSDL2Java?

Без параметров, используйте wsimport:)

См. также

Смежные вопросы

8 голосов
/ 28 августа 2010

Я успешно использовал Spring WS для клиентской части приложения веб-службы - см. http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

В моем проекте используется комбинация:

  • XMLBeans (генерируется из простого задания Maven с использованием xmlbeans-maven-plugin)

  • Spring WS - с помощью marshalSendAndReceive () сокращает код до одной строки для отправки и получения

  • некоторые Dozer - отображение сложных XMLBeans на простые bean-компоненты для GUI клиента

1 голос
/ 25 марта 2012

Здесь вы можете найти некоторые ресурсы, связанные с разработкой клиента веб-сервисов с использованием Apache axis2.

http://today.java.net/pub/a/today/2006/12/13/invoking-web-services-using-apache-axis2.html

В следующих статьях приведены хорошие пояснения по разработке веб-сервисов с использованием Apache axis2.

http://www.ibm.com/developerworks/opensource/library/ws-webaxis1/

http://wso2.org/library/136

0 голосов
/ 28 августа 2010

Некоторые идеи в следующем ответе:

Этапы создания веб-службы с использованием Axis2 - код клиента

Приводит пример клиента Groovy, вызывающего классы ADB, сгенерированные из WSDL.

Существует множество фреймворков для веб-сервисов ...

...