Клієнт веб-сервісу Java (найкращий спосіб)


82

У мене є сторонній 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

Відповіді:


163

Який найкращий підхід для цього JAVA?

Я б особисто НЕ використовував Axis 2, навіть для розробки на стороні клієнта. Ось чому я тримаюся подалі від цього:

  1. Мені не подобається його архітектура, і я ненавиджу її непродуктивну модель розгортання.
  2. Я вважаю, що це проект низької якості.
  3. Мені не подобаються його виступи (див. Цей орієнтир проти JAX-WS RI ).
  4. Налаштування залежностей завжди кошмар (я використовую Maven, і мені завжди доводиться боротися з мільйоном залежностей) (див. No2)
  5. Вісь засмоктала великий час, і Axis2 не краща. Ні, це не особиста думка, є консенсус.
  6. Я страждав один раз, більше ніколи.

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

Я читав про SAAJ, схоже, це буде більш детальний рівень підходу?

Що зробити?

Чи існує інший спосіб, окрім використання інструменту WSDL2Java, для генерації коду. Можливо, будемо імпортувати інший варіант. Які плюси і мінуси?

Так! Віддайте перевагу стеку JAX-WS, як CXF або JAX-WS RI (ви також можете прочитати про Metro, Metro = JAX-WS RI + WSIT ), вони просто більш елегантні, простіші та простіші у використанні. У вашому випадку я б просто використав JAX-WS RI, який входить до складу Java 6, а отже wsimport.

Хтось може надіслати посилання на хороші підручники з цих тем?

Це ще один професіонал, існує безліч (хорошої якості) підручників для JAX-WS, див. Наприклад:

Які варіанти нам потрібно використовувати під час генерації коду за допомогою WSDL2Java?

Варіантів немає, використовуйте wsimport:)

Дивіться також

Пов’язані запитання


4
Дивовижна робота, дякую. Не могли б ви також зробити WSIT посиланням на якийсь його опис (наприклад, на download.oracle.com/docs/cd/E17802_01/webservices/webservices/… )
dma_k

@dma_k Готово, додав посилання на проект WSIT (той, який ви розмістили, теж хороший, тому читачі мають обидва).
Pascal Thivent

1
Я дав вам +1 давно, навіть не перейшовши за всіма посиланнями. Людина жива, той жовчний блог б’є його по носу! :) Ще раз дякую за це.
javamonkey79

1
+1 для JAX-WS. Втрачені багато днів з Axis2 ... загальний MESS (не кажучи вже про тонну залежностей)
marcolopes

1
Ей, Паскаль, посилання Глена Мацзи порушено.
Adeel Ansari

8

Я мав гарний успіх, використовуючи Spring WS для клієнтського кінця програми веб-служби - див. Http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

Мій проект використовує комбінацію:

  • XMLBeans (генерується з простої роботи Maven за допомогою плагіна xmlbeans-maven)

  • Spring WS - використання marshalSendAndReceive () зменшує код до одного рядка для надсилання та отримання

  • деякі Dozer - зіставлення складних XMLBeans із простими компонентами для клієнтського графічного інтерфейсу


1

Деякі ресурси, пов’язані з розробкою клієнта веб-служб за допомогою 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


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.