Клиент Java Webservice (лучший способ)

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

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

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

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

Ответ 1

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

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

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

Единственная причина, по которой 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.

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

В этом другом профи, есть много (хорошего качества) учебников для JAX-WS, см., например:

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

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

См. также

Связанные вопросы

Ответ 2

У меня был хороший успех, используя 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 с простым beans для клиентского GUI

Ответ 3

Вы можете найти некоторые ресурсы, связанные с созданием клиента веб-сервисов, используя 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