ความแตกต่างระหว่าง JAX-WS, Axis2 และ CXF


131

อะไรคือความแตกต่างระหว่าง:

  1. JAX-WS
  2. Axis2
  3. CXF

สามารถใช้ทั้งสามอย่างเพื่อสร้างบริการเว็บใน Java
อย่างที่ฉันรู้ว่า JAX-WS เป็นข้อกำหนดและ Axis2 และ CXF เป็นการนำไปใช้งาน แต่ Java 1.6 มีการใช้งาน JAX-WS หากฉันไม่ผิด

ดังนั้นเราสามารถใช้ Java 1.6 เพื่อพัฒนาเว็บเซอร์วิส JAX-WS โดยไม่ต้องใช้ Axis2 หรือ CXF? แล้ว Axis2, CXF ใช้ยังไง?

คำตอบ:


143

การใช้งาน JAX-WS ใน JDK เป็นเพียงสบู่พื้นฐานเท่านั้น หากคุณต้องการสิ่งที่ซับซ้อนกว่า WS- * เช่น WS-Security, WS-RM, WS-Policy ฯลฯ ... คุณต้องใช้ทางเลือกใดทางเลือกหนึ่งเช่น CXF หรือ Metro หรือ Axis2 นอกจากนี้ยังขึ้นอยู่กับสิ่งที่คุณพยายามรวมเข้าด้วย ตัวอย่างเช่น CXF มีการรองรับ Spring ที่ดีเยี่ยมรวมถึงการสนับสนุน OSGi ที่ดีมาก

CXF ยังมีสิ่งอื่น ๆ นอกเหนือจาก JAX-WS มีการใช้งาน JAX-RS ที่เป็นไปตามข้อกำหนดและรองรับการเปิดเผยบริการทั้ง REST และ SOAP ได้เป็นอย่างดี มีการใช้งาน SOAP / JMS ที่สอดคล้องกับ W3C หากจำเป็นต้องใช้สิ่งนั้น โดยทั่วไปมีหลายสิ่งไม่สามารถใช้ได้จาก in-jdk JAX-WS im

ดูเพิ่มเติมที่:

ความแตกต่างระหว่าง Apache CXF และ Axis


1
ขอบคุณช่วยได้มาก ดังนั้นสำหรับสิ่งบริการเว็บพื้นฐานฉันสามารถใช้ java 1.6 เพื่อใช้งานได้และการใช้ jax-ws ใน java 1.5 หรือไม่? หรือมันถูกเพิ่มหลังจาก 1.6? หากฉันต้องการคุณสมบัติเพิ่มเติมฉันสามารถใช้ CXF ได้หรือไม่?
Maverick Riz

5
มันถูกเพิ่มใน 1.6 หากคุณต้องการการสนับสนุน 1.5 คุณจะต้องคว้า CXF หรือ JAX-WS reference โดยนัยหรือคล้ายกัน
Daniel Kulp

7
และส่วนใหญ่ถ้าคุณเริ่มต้นด้วย im-jdk JAX-WS คุณสามารถวาง CXF ได้ตลอดเวลาและมันจะยังคงใช้งานได้
Daniel Kulp

1
ฉันมีข้อสงสัยเล็กน้อย การใช้งาน Metro -The JAX-WS ใน JDK ไม่ใช่หรือ หรือ Metro มีความซับซ้อนมากกว่าการใช้งาน JAX-WS ที่ติดตั้งใน JDK?
Dexter

16

ในระยะสั้น.

WSDL WS- * เป็นภาษาที่ไม่เชื่อเรื่องพระเจ้า

JAX-WS เป็นมาตรฐาน Java สำหรับสร้างเว็บเซอร์วิส

Apache CXFและApache Axis 2เป็นการใช้งาน JAX-WS สองแบบ นอกจากนี้ยังมีการใช้งาน JAX-RS เพื่อให้คุณสามารถสร้างบริการที่สงบได้

CXF สามารถทำงานร่วมกับ Spring และ Camel ( camel-cxf ) ได้ดีขึ้น และดูเหมือนว่าแกน 2 จะไม่มีรีลีสที่ใช้งานอยู่


15

ฉันพบกับ CXF - การผสานรวมกับ Spring นั้นง่ายมาก นอกจากนี้ยังมีคุณสมบัติต่างๆเช่น:

  1. การปรับแต่งคุณสมบัติการบันทึก
  2. เครื่องสกัดกั้นขาเข้าและขาออก
  3. ความปลอดภัยระดับแอปพลิเคชัน
  4. จัดการข้อยกเว้นได้ง่ายโดยใช้ข้อบกพร่องที่กำหนดเอง

หากต้องการรายละเอียดเพิ่มเติมโปรดตรวจสอบลิงค์นี้:

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

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

และฉันอ่านลิงก์ด้านบนซึ่งเป็นประโยชน์สำหรับฉัน ฉันหวังว่ามันจะได้ผลสำหรับคุณเช่นกัน

ขอบคุณ!


3

องค์กร Web Service มีหลักเกณฑ์บางประการเช่น BP (Basic Profile) 1.0 และ BP (Basic Profile) 1.1 อิงตามแนวทางที่ผู้ใช้ทุกภาษา (Java / .Net) เผยแพร่ข้อมูลจำเพาะด้วยการใช้งานเริ่มต้นใน java Base บนข้อกำหนดของ BP 1.0 คือ JAX-RPC และข้อกำหนด 1.0 คือ JAX-WS

การใช้งาน JAX-WS เริ่มต้นคือ RI (Reference Implementation) ตามความต้องการ / ตัวเลือกที่เราสามารถเปลี่ยนการใช้งานได้ (RI / AXIS-2 / CXF)

เมื่อเราใช้ java 1.6 กรณีนั้นใน JDK มีอยู่แล้วจึงไม่จำเป็นต้องใช้ jar อื่น ๆ หากคุณต้องการใช้การใช้งานที่แตกต่างกันกรณีนั้นจำเป็นต้องใช้ jar การดำเนินการโดยเฉพาะ

Axis-2 และ CXF มาจาก Apache

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.