JAX-RS ve JAX-WS arasındaki fark nedir?


95

JAX-RS ve JAX-WS hakkında birkaç makale okuduktan sonra, onaylamak istediğim birkaç sorum var?

  1. JAX-RS, JAX-WS gibi Asenkron İsteklerde bulunabilir mi?
  2. JAX-RS, Java platformunda çalışmayan bir web hizmetine erişebilir mi, bunun tersi de geçerlidir?
  3. "REST, PDA'lar ve cep telefonları gibi sınırlı profilli cihazlar için özellikle yararlıdır" ile ne anlama geliyor?
  4. "JAX-RS, XML mesajları veya WSDL hizmeti-API tanımları gerektirmez?

Yanıtlar:


79

JAX-RS, JAX-WS gibi Asenkron İsteklerde bulunabilir mi?

1) JAX-RS API'nin zaman uyumsuz istekler için belirli bir mekanizma içerip içermediğini bilmiyorum, ancak bu yanıt kullandığınız istemci uygulamasına bağlı olarak yine de değişebilir.

JAX-RS, Java platformunda çalışmayan bir web hizmetine erişebilir mi, bunun tersi de geçerlidir?

2) Yapamaması için herhangi bir sebep düşünemiyorum.

"REST, PDA'lar ve cep telefonları gibi sınırlı profilli cihazlar için özellikle yararlıdır" ile ne anlama geliyor?

3) REST tabanlı mimariler, verileri ileri geri göndermek için genellikle JSON gibi hafif bir veri formatı kullanır. Bu, XML kullanan JAX-WS'nin tersidir. XML'i kendi başına JSON'dan (bazılarının iddia edebileceği gibi) çok daha ağır görmüyorum, ancak JAX-WS ile, JSON ile REST'i daha hafif bir seçenek haline getiren, ne kadar XML kullanıldığıdır.

"JAX-RS, XML mesajları veya WSDL hizmeti-API tanımları gerektirmez?

4) 3'te belirtildiği gibi, REST mimarileri genellikle veri göndermek ve almak için JSON kullanır. JAX-WS, XML kullanır. JSON'un kendi başına XML'den çok daha küçük olması değil. Çoğunlukla, JAX-WS spesifikasyonunun, iletişim kurma biçimiyle ilgili çok fazla ek yükü vardır.

WSDL ve API tanımları konusunda, JAX-WS'de yapıldığı gibi, REST, API'yi tanımlamak için mesaj türlerinden ziyade URI yapısını ve HTTP komutlarını daha sık kullanacaktır. Bu, hizmetinizin diğer kullanıcılarının hizmetinizle nasıl konuşacaklarını bilmesi için bir WSDL belgesi yayınlamanıza gerek olmadığı anlamına gelir. REST ile, diğer kullanıcılara REST hizmetinin nasıl düzenlendiğine ve hangi verilerin ve HTTP komutlarının gönderilmesi gerektiğine ilişkin bazı belgeleri sağlamanız gerekir.


Bu çok faydalı cevap için teşekkür ederim. JAX-WS'yi JAX-RS'den ayıran bildiğiniz başka şeyler var mı?
pmark019

91

Bir başka önemli nokta

JAX-WS SABUNU temsil eder

JAX-RS, REST'i temsil eder

JAX-RS ve JAX-WS web hizmetleri uygulaması arasında nasıl seçim yapılır?


31
Aslında, JAX-WS hem RESTful hem de SOAP tabanlı web servislerini temsil eder. Bunu düşünmenin bir yolu, JAX-RS'nin RESTful'da uzmanlaşmasıdır, JAX-WS ise, ikisi arasında seçim yapmanız için daha fazla esneklik sağlarken aynı zamanda (bazı durumlarda) yapılandırmak için daha karmaşıktır.
MattC

Basit açıklama için teşekkürler.
PeerNet

2
" JAX-WS, hem RESTful hem de SABUN tabanlı web hizmetlerini temsil eder " - bu doğru değildir, lütfen talebinizi doğrulamak için biraz referans verebilir misiniz? JAX-WS, SABUNU HTTP üzerinden ve ayrıca XML üzerinden HTTP aktarabilir, ancak bu JAX-WS yapar RESTful. RESTful olmak tamamen farklı bir kavramdır.
hagrawal

46

JAX-WS - XML ​​Tabanlı Web Hizmetleri için Java API'dir - SOAP gösteriminde (Basit Nesne Erişim Protokolü) Web Hizmetleri geliştirmenin standart bir yolu .

Web Hizmetlerinin çağrılması, uzak prosedür çağrıları aracılığıyla gerçekleştirilir. İstemci ile Web Hizmeti arasında bilgi alışverişi için SOAP protokolü kullanılır. İstemci ve sunucu arasındaki mesaj alışverişi XML tabanlı SOAP mesajları aracılığıyla gerçekleştirilir .

JAX-WS Web Hizmetinin istemcileri, istemcilerin Web Hizmetini çağırmak için kullanabilecekleri çalıştırılabilir kod üretmek için bir WSDL dosyasına ihtiyaç duyar .

JAX-RS - RESTful Web Hizmetleri için Java API. RESTful Web Hizmetleri, kaynaklar olarak temsil edilir ve Tekdüzen Kaynak Tanımlayıcıları ( URI ) ile tanımlanabilir. Bu durumda uzak prosedür çağrısı, bir HTTP isteği olarak temsil edilir ve gerekli veriler, sorgunun parametreleri olarak iletilir. Web Hizmetleri RESTful - daha esnektir, birkaç farklı MIME türünü kullanabilir. Genellikle XML veri alışverişi veya JSON (JavaScript Object Notation) veri alışverişi için kullanılır ...


1
Kısa ve net açıklama !! Mükemmel.
Saurabh Rai

0

Apachi Axis1.1 ve Axis2.0 ve JAX-WS üzerinde çalışıyorum ancak herhangi bir formatta wsdl yapmanıza izin verdiği için JAX-WS'yi kullanmanızı öneririm, Apache Axis2'de GetInquiry () olarak işlem yapıyordum bunu yapmıyordum İşlem adını Büyük Harf ile Başlatmama izin verin, bu yüzden iyi bulmuyorum, bu yüzden JAX-WS kullanmanızı öneririm


0

JAX-RS, JAX-WS gibi Asenkron İsteklerde bulunabilir mi?

Evet, kesinlikle @Async kullanabilir

JAX-RS, Java platformunda çalışmayan bir web hizmetine erişebilir mi, bunun tersi de geçerlidir?

Evet, yapabilir

"REST, PDA'lar ve cep telefonları gibi sınırlı profilli cihazlar için özellikle yararlıdır" ile ne anlama geliyor?

Çoğunlukla genel api'ler için kullanılır, hangi yaklaşımı kullanmak istediğinize bağlıdır.

"JAX-RS, XML mesajları veya WSDL hizmeti-API tanımları gerektirmez?

Kendi standartları vardır WADL (Web uygulama Geliştirme Dili), farklı zihniyet tarafından oluşturulmuş kaynaklara erişebileceğiniz http talebine sahiptir, Jax-R'lerde kaynakları açığa çıkarmayı düşünmeniz gerektiğinde

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.