Perbedaan antara JAX-WS, Axis2 dan CXF

131

Apa perbedaan antara:

  1. JAX-WS
  2. Sumbu2
  3. CXF

Ketiganya dapat digunakan untuk membuat layanan web di Jawa.
Seperti yang saya tahu JAX-WS adalah spesifikasi dan Axis2 dan CXF adalah implementasi, tetapi Java 1.6 memiliki implementasi JAX-WS jika saya tidak salah.

Jadi orang dapat menggunakan Java 1.6 untuk mengembangkan layanan web JAX-WS tanpa menggunakan Axis2 atau CXF? Lalu apa gunanya Axis2, CXF?

Maverick Riz
sumber

Jawaban:

143

Implementasi JAX-WS yang dibangun dalam JDK benar-benar hanyalah bahan sabun dasar. Jika Anda memerlukan salah satu dari WS- * hal-hal yang lebih kompleks seperti WS-Security, WS-RM, WS-Policy, dll ..., Anda perlu menggunakan salah satu alternatif seperti CXF atau Metro atau Axis2. Itu juga bisa bergantung pada apa yang ingin Anda integrasikan. Sebagai contoh, CXF memiliki dukungan Spring kedudukan tertinggi serta dukungan OSGi yang sangat baik.

CXF juga memiliki hal-hal lain selain hanya JAX-WS. Ini memiliki implementasi JAX-RS yang patuh juga dan mendukung layanan yang mengekspos seperti REST dan SOAP dengan sangat baik. Memiliki implementasi SOAP / JMS yang memenuhi W3C jika hal-hal semacam itu diperlukan. Pada dasarnya, banyak hal yang tidak tersedia dari impl JAX-WS di-jdk.

Lihat juga:

Perbedaan antara Apache CXF dan Axis

Daniel Kulp
sumber
1
Terima kasih, banyak membantu. Jadi untuk hal-hal layanan web dasar saya hanya dapat menggunakan java 1.6 untuk mengimplementasikan. Dan apakah ini merupakan implementasi dari jax-ws di java 1.5? Atau ditambahkan setelah 1,6? Jika saya memerlukan fitur tambahan, saya dapat menggunakan CXF?
Maverick Riz
5
Itu ditambahkan dalam 1.6. Jika Anda membutuhkan 1,5 dukungan, Anda perlu mengambil CXF atau imp referensi JAX-WS atau serupa.
Daniel Kulp
7
Dan sebagian besar, jika Anda mulai dengan JAX-WS impl di-jdk, Anda dapat memasukkan CXF kapan saja dan itu masih akan berfungsi.
Daniel Kulp
1
Saya punya sedikit keraguan. Bukankah Metro - Implementasi JAX-WS dibangun ke dalam JDK? Atau Metro lebih canggih dari implementasi JAX-WS yang dibangun ke dalam JDK?
Dexter
16

Pendeknya.

WSDL WS- * adalah agnostik bahasa.

JAX-WS adalah standar Java untuk membangun layanan web.

Apache CXF dan Apache Axis 2 adalah dua implementasi dari JAX-WS. Mereka juga menawarkan implementasi JAX-RS sehingga Anda dapat membangun layanan Restful.

CXF memiliki integrasi yang lebih baik dengan Spring, dan Camel ( camel-cxf ). Dan Axis 2 tampaknya tidak memiliki rilis aktif.

chenrui
sumber
15

Saya menemukan dengan CXF - integrasi dengan Spring sangat mudah. Selain itu, ia menyediakan berbagai fitur seperti:

  1. Kustomisasi fitur Logging
  2. Pencegat masuk dan keluar
  3. Keamanan Tingkat Aplikasi
  4. Penanganan Pengecualian mudah menggunakan Kesalahan kustom.

Untuk detail lebih lanjut, jika Anda mau, silakan cek tautan ini:

http://predic8.com/axis2-cxf-jax-ws-comparison.htm

http://www.ibm.com/developerworks/java/library/j-jws11/

Dan, saya membaca tautan di atas, itu preety bermanfaat bagi saya. Saya harap ini bekerja untuk Anda juga.

Terima kasih!

puru
sumber
3

Organisasi Layanan Web memuat beberapa pedoman yaitu BP (Profil Dasar) 1.0 dan BP (Profil Dasar) 1.1. Berdasarkan Pedoman Semua Bahasa (Java / .Net) orang melepaskan Spesifikasi dengan implementasi Default Di java Berbasis pada spesifikasi BP 1.0 Adalah JAX-RPC Dan 1.0 Spesifikasi adalah JAX-WS

Implementasi standar JAX-WS adalah RI (Implementasi Referensi) Berdasarkan persyaratan / Pilihan, kita dapat mengubah implementasinya (RI / AXIS-2 / CXF)

Ketika kami menggunakan java 1.6, case di JDK sudah tersedia sehingga tidak diperlukan toples lainnya. Jika Anda ingin menggunakan implementasi yang berbeda, kasing tersebut memerlukan wadah khusus.

Axis-2 dan CXF berasal dari Apache

Abhijit Patra
sumber