Java Webservice Client (En iyi yol)


83

Üçüncü taraf bir WSDL'ye sahibim, üçüncü taraf WSDL'deki işlemleri başlatmak için bir web hizmeti istemcisine Java'da kod yazmam gerekiyor. Şu anda, Axis'ten WSDL2JAVA aracını kullanarak istemci saplamasını oluşturdum ve veri bağlama için XMLbeans'i kullandım.

  1. Bu JAVA'yı yapmak için en iyi yaklaşım nedir?
  2. SAAJ hakkında okudum, bu daha ayrıntılı bir yaklaşım seviyesi olacak gibi görünüyor?
  3. Kodu oluşturmak için WSDL2Java aracını kullanmaktan başka bir yol var mı? Belki wsimportbaşka bir seçenekte. Artıları ve eksileri nelerdir?
  4. Birisi bu konularda bazı iyi öğreticiler için bağlantılar gönderebilir mi?
  5. WSDL2Java'yı kullanarak kodu oluştururken kullanmamız gereken seçenekler nelerdir?

Başlangıçta bazı temel şeyleri kullandım. Şimdi bu seçeneklere sahibim

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

Yanıtlar:


164

Bu JAVA'yı yapmak için en iyi yaklaşım nedir?

Ben şahsen ediyorum DEĞİL bile istemci tarafı gelişmesi yalnızca, Eksen 2 kullanın. İşte bu yüzden ondan uzak duruyorum:

  1. Mimarisini sevmiyorum ve karşı üretken dağıtım modelinden nefret ediyorum.
  2. Bunu düşük kaliteli bir proje olarak görüyorum.
  3. Performanslarından hoşlanmıyorum ( JAX-WS RI ile karşılaştırmalı bu kıyaslamaya bakın ).
  4. Bağımlılıklar kurmak her zaman bir kabustur (Maven kullanıyorum ve her zaman gazilyonlarca bağımlılıkla savaşmak zorundayım) (bkz. # 2)
  5. Axis çok zaman aldı ve Axis2 daha iyi değil. Hayır, bu kişisel bir görüş değil, bir fikir birliği var.
  6. Bir kez acı çektim, bir daha asla.

Axis'in hala ortalıkta olmasının tek sebebi IMO çünkü çağlardan beri Eclipse'de kullanılıyor. Tanrıya şükür, bu Eclipse Helios'ta düzeltildi ve umarım Axis2 sonunda ölecektir. Çok daha iyi yığınlar var.

SAAJ hakkında okudum, bu daha ayrıntılı bir yaklaşım seviyesi olacak gibi görünüyor?

Ne yapacağını?

Kodu oluşturmak için WSDL2Java aracını kullanmaktan başka bir yol var mı? Belki başka bir seçenekte wsimport. Artıları ve eksileri nelerdir?

Evet! CXF veya JAX-WS RI gibi bir JAX-WS yığınını tercih edin (Metro, Metro = JAX-WS RI + WSIT hakkında da okuyabilirsiniz ), bunlar sadece daha zarif, daha basit ve kullanımı daha kolay. Sizin durumunuzda, Java 6'da bulunan JAX-WS RI'yi kullanırdım ve dolayısıyla wsimport.

Birisi bu konularda bazı iyi öğreticiler için bağlantılar gönderebilir mi?

Bu başka bir profesyonel, JAX-WS için çok sayıda (kaliteli) öğretici var, örneğin bakınız:

WSDL2Java'yı kullanarak kodu oluştururken kullanmamız gereken seçenekler nelerdir?

Seçenek yok, kullanın wsimport:)

Ayrıca bakınız

İlgili sorular


4
Harika iş, teşekkürler. Lütfen WSIT'yi bir açıklama için bir bağlantı yapabilir misiniz (örn. Download.oracle.com/docs/cd/E17802_01/webservices/webservices/… )
dma_k

@dma_k Bitti, WSIT projesine bir bağlantı ekledi (gönderdiğiniz de iyi bir proje, dolayısıyla okuyucular her ikisine de sahip).
Pascal Thivent

1
Tüm bağlantıları takip etmeden uzun zaman önce size +1 verdim. Yaşayan adam, o safra bloğu burnuna çarpıyor! :) Tekrar teşekkürler, bunun için.
javamonkey79

1
JAX-WS için +1. Axis2 ile birçok gün kaybettim ... toplam bir MESS (bir ton bağımlılıktan bahsetmiyorum bile)
marcolopes

1
Hey Pascal, Glen Mazza'nın bağlantısı artık koptu.
Adeel Ansari

8

Bir web hizmeti uygulamasının istemci ucu için Spring WS'yi kullanarak iyi bir başarı elde ettim - bkz. Http://static.springsource.org/spring-ws/sites/1.5/reference/html/client.html

Projem şunların bir kombinasyonunu kullanıyor:

  • XMLBeans (xmlbeans-maven-eklentisi kullanılarak basit bir Maven işinden oluşturulmuştur)

  • Spring WS - marshalSendAndReceive () kullanımı, kodu gönderme ve alma için bir satıra indirir

  • Bazı Dozer - karmaşık XMLBeans'leri istemci GUI'si için basit çekirdeklerle eşleme



Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.