Apa perbedaan antara JAX-RS dan JAX-WS?

94

Setelah membaca beberapa artikel tentang JAX-RS dan JAX-WS, saya punya beberapa pertanyaan yang ingin saya konfirmasi?

  1. Bisakah JAX-RS melakukan Permintaan Asinkron seperti JAX-WS?
  2. Dapatkah JAX-RS mengakses layanan web yang tidak berjalan pada platform Java, dan sebaliknya?
  3. Apa yang dimaksud dengan "REST sangat berguna untuk perangkat dengan profil terbatas, seperti PDA dan ponsel"?
  4. Apa yang dimaksud dengan "JAX-RS tidak memerlukan pesan XML atau definisi layanan-API WSDL?
pmark019
sumber

Jawaban:

78

Bisakah JAX-RS melakukan Permintaan Asinkron seperti JAX-WS?

1) Saya tidak tahu apakah JAX-RS API menyertakan mekanisme khusus untuk permintaan asinkron, tetapi jawaban ini masih dapat berubah berdasarkan implementasi klien yang Anda gunakan.

Dapatkah JAX-RS mengakses layanan web yang tidak berjalan pada platform Java, dan sebaliknya?

2) Saya tidak bisa memikirkan alasan apa pun itu tidak akan bisa.

Apa yang dimaksud dengan "REST sangat berguna untuk perangkat dengan profil terbatas, seperti PDA dan ponsel"?

3) Arsitektur berbasis REST biasanya akan menggunakan format data ringan, seperti JSON, untuk mengirim data bolak-balik. Ini berbeda dengan JAX-WS yang menggunakan XML. Saya tidak melihat XML dengan sendirinya jauh lebih berat daripada JSON (yang mungkin diperdebatkan beberapa orang), tetapi dengan JAX-WS, berapa banyak XML yang digunakan yang akhirnya membuat REST dengan JSON opsi yang lebih ringan.

Apa yang dimaksud dengan "JAX-RS tidak memerlukan pesan XML atau definisi layanan-API WSDL?

4) Seperti yang dinyatakan dalam 3, arsitektur REST sering menggunakan JSON untuk mengirim dan menerima data. JAX-WS menggunakan XML. Bukan karena JSON secara signifikan lebih kecil dari XML itu sendiri. Sebagian besar spesifikasi JAX-WS mencakup banyak overhead dalam cara berkomunikasi.

Mengenai definisi WSDL dan API, REST akan lebih sering menggunakan struktur URI dan perintah HTTP untuk menentukan API daripada jenis pesan, seperti yang dilakukan di JAX-WS. Ini berarti Anda tidak perlu mempublikasikan dokumen WSDL sehingga pengguna lain dari layanan Anda dapat mengetahui cara berbicara dengan layanan Anda. Dengan REST Anda masih perlu memberikan beberapa dokumentasi kepada pengguna lain tentang bagaimana layanan REST diatur dan data dan perintah HTTP apa yang perlu dikirim.

Nick Roth
sumber
Terima kasih atas jawaban yang sangat membantu itu. Adakah hal lain yang membedakan JAX-WS dengan JAX-RS yang Anda ketahui?
pmark019
92

Poin penting lainnya

JAX-WS mewakili SOAP

JAX-RS mewakili REST

Bagaimana cara memilih implementasi layanan web JAX-RS dan JAX-WS?

pengguna2849471
sumber
29
Sebenarnya, JAX-WS mewakili layanan web berbasis RESTful dan SOAP. Salah satu cara untuk memikirkannya adalah bahwa JAX-RS berspesialisasi dalam RESTful, sementara JAX-WS memungkinkan Anda lebih banyak fleksibilitas untuk memilih di antara keduanya, sementara pada saat yang sama (dalam beberapa kasus) lebih rumit untuk dikonfigurasi.
MattC
Terima kasih atas penjelasannya yang sederhana.
PeerNet
2
" JAX-WS mewakili layanan web berbasis RESTful dan SOAP " - ini tidak benar, dapatkah Anda memberikan referensi untuk memvalidasi klaim Anda, JAX-WS dapat mengirimkan SOAP melalui HTTP dan juga XML melalui HTTP, tetapi ini membuat JAX-WS Tenang. Menjadi RESTful adalah konsep yang sama sekali berbeda.
hagrawal
43

JAX-WS - adalah Java API untuk Layanan Web Berbasis XML - cara standar untuk mengembangkan Layanan Web dalam notasi SOAP (Simple Object Access Protocol).

Panggilan Layanan Web dilakukan melalui panggilan prosedur jarak jauh. Untuk pertukaran informasi antara klien dan Layanan Web digunakan protokol SOAP. Pertukaran pesan antara klien dan server dilakukan melalui pesan SOAP berbasis XML .

Klien Layanan Web JAX-WS memerlukan file WSDL untuk menghasilkan kode yang dapat dieksekusi yang dapat digunakan klien untuk memanggil Layanan Web.

JAX-RS - Java API untuk Layanan Web RESTful. RESTful Web Services direpresentasikan sebagai sumber daya dan dapat diidentifikasi oleh Uniform Resource Identifiers ( URI ). Panggilan prosedur jarak jauh dalam hal ini direpresentasikan sebagai permintaan HTTP dan data yang diperlukan diteruskan sebagai parameter kueri. Web Services RESTful - lebih fleksibel, dapat menggunakan beberapa tipe MIME yang berbeda . Biasanya digunakan untuk pertukaran data XML atau pertukaran data JSON (JavaScript Object Notation) ...


sumber
Penjelasan singkat dan tajam !! Luar biasa.
Saurabh Rai
0

saya telah mengerjakan Apachi Axis1.1 dan Axis2.0 dan JAX-WS tetapi saya menyarankan Anda harus JAX-WS karena memungkinkan Anda membuat wsdl dalam format apa pun, saya melakukan operasi sebagai GetInquiry () di Apache Axis2 itu tidak izinkan saya untuk Memulai nama Operasi dalam Huruf Besar, jadi menurut saya itu tidak baik, jadi saya sarankan Anda harus menggunakan JAX-WS

Waseem Saeed
sumber
0

Bisakah JAX-RS melakukan Permintaan Asinkron seperti JAX-WS?

Ya, itu pasti bisa menggunakan @Async

Dapatkah JAX-RS mengakses layanan web yang tidak berjalan pada platform Java, dan sebaliknya?

Ya, itu bisa dilakukan

Apa yang dimaksud dengan "REST sangat berguna untuk perangkat dengan profil terbatas, seperti PDA dan ponsel"?

Ini terutama digunakan untuk aplikasi publik, tergantung pada pendekatan mana yang ingin Anda gunakan.

Apa yang dimaksud dengan "JAX-RS tidak memerlukan pesan XML atau definisi layanan-API WSDL?

Ini memiliki standar sendiri WADL (Bahasa Pengembangan Aplikasi Web) memiliki permintaan http yang dengannya Anda dapat mengakses sumber daya, semuanya dibuat oleh pola pikir yang berbeda, Dalam kasus di Jax-Rs Anda harus memikirkan untuk mengekspos sumber daya

Urvil Joshi
sumber