JAX-RS และ JAX-WS ต่างกันอย่างไร


95

หลังจากอ่านบทความเกี่ยวกับ JAX-RS และ JAX-WS แล้วฉันมีคำถามสองสามข้อที่ต้องการยืนยัน?

  1. JAX-RS สามารถทำ Asynchronous Request เช่น JAX-WS ได้หรือไม่?
  2. JAX-RS สามารถเข้าถึงบริการเว็บที่ไม่ได้ทำงานบนแพลตฟอร์ม Java และในทางกลับกันได้หรือไม่?
  3. "REST มีประโยชน์อย่างยิ่งสำหรับอุปกรณ์ที่มีโปรไฟล์ จำกัด เช่นพีดีเอและโทรศัพท์มือถือ" หมายความว่าอย่างไร
  4. หมายความว่าอย่างไรโดย "JAX-RS ไม่ต้องการข้อความ XML หรือคำจำกัดความของบริการ WSDL - API?

คำตอบ:


79

JAX-RS สามารถทำ Asynchronous Request เช่น JAX-WS ได้หรือไม่?

1) ฉันไม่รู้ว่า JAX-RS API มีกลไกเฉพาะสำหรับคำขอแบบอะซิงโครนัสหรือไม่ แต่คำตอบนี้อาจเปลี่ยนแปลงได้ตามการใช้งานไคลเอ็นต์ที่คุณใช้

JAX-RS สามารถเข้าถึงบริการเว็บที่ไม่ได้ทำงานบนแพลตฟอร์ม Java และในทางกลับกันได้หรือไม่?

2) ฉันไม่สามารถคิดถึงเหตุผลใด ๆ ที่จะไม่สามารถทำได้

"REST มีประโยชน์อย่างยิ่งสำหรับอุปกรณ์ที่มีโปรไฟล์ จำกัด เช่นพีดีเอและโทรศัพท์มือถือ" หมายความว่าอย่างไร

3) สถาปัตยกรรมที่ใช้ REST โดยทั่วไปจะใช้รูปแบบข้อมูลที่มีน้ำหนักเบาเช่น JSON เพื่อส่งข้อมูลไปมา ตรงกันข้ามกับ JAX-WS ซึ่งใช้ XML ฉันไม่เห็น XML ด้วยตัวเองหนักกว่า JSON อย่างมีนัยสำคัญ (ซึ่งบางคนอาจโต้แย้ง) แต่ด้วย JAX-WS จะใช้ XML มากแค่ไหนซึ่งทำให้ REST ด้วย JSON เป็นตัวเลือกที่เบากว่า

หมายความว่าอย่างไรโดย "JAX-RS ไม่ต้องการข้อความ XML หรือคำจำกัดความของบริการ WSDL - API?

4) ตามที่ระบุไว้ในข้อ 3 สถาปัตยกรรม REST มักใช้ JSON ในการส่งและรับข้อมูล JAX-WS ใช้ XML ไม่ใช่ว่า JSON จะเล็กกว่า XML อย่างมีนัยสำคัญ โดยส่วนใหญ่แล้วข้อมูลจำเพาะของ JAX-WS จะมีค่าใช้จ่ายมากมายในการสื่อสาร

ในประเด็นเกี่ยวกับนิยาม WSDL และ API REST จะใช้โครงสร้าง URI และคำสั่ง HTTP บ่อยกว่าเพื่อกำหนด API มากกว่าประเภทข้อความดังที่ทำใน JAX-WS ซึ่งหมายความว่าคุณไม่จำเป็นต้องเผยแพร่เอกสาร WSDL เพื่อให้ผู้ใช้บริการของคุณคนอื่นรู้วิธีพูดคุยกับบริการของคุณ เมื่อใช้ REST คุณจะต้องจัดเตรียมเอกสารบางอย่างให้กับผู้ใช้รายอื่นเกี่ยวกับวิธีการจัดระเบียบบริการ REST และข้อมูลและคำสั่ง HTTP ที่ต้องส่ง


ขอบคุณสำหรับคำตอบที่เป็นประโยชน์ มีสิ่งอื่นใดที่จะทำให้ JAX-WS แตกต่างจาก JAX-RS ที่คุณรู้จักหรือไม่?
pmark019

91

จุดสำคัญอีกประการหนึ่ง

JAX-WS แทน SOAP

JAX-RS แสดงถึง REST

จะเลือกระหว่างการใช้งานบริการเว็บ JAX-RS และ JAX-WS ได้อย่างไร


31
จริงๆแล้ว JAX-WS แสดงถึงบริการเว็บที่ใช้ RESTful และ SOAP วิธีหนึ่งในการคิดก็คือ JAX-RS เชี่ยวชาญใน RESTful ในขณะที่ JAX-WS ช่วยให้คุณมีความยืดหยุ่นมากขึ้นในการเลือกระหว่างทั้งสองอย่างในขณะเดียวกัน (ในบางกรณี) ก็มีความซับซ้อนมากขึ้นในการกำหนดค่า
MattC

ขอบคุณสำหรับคำอธิบายง่ายๆ
PeerNet

2
" JAX-WS แสดงถึงบริการเว็บที่ใช้ RESTful และ SOAP " ซึ่งไม่เป็นความจริงโปรดใส่ข้อมูลอ้างอิงเพื่อตรวจสอบการอ้างสิทธิ์ของคุณได้หรือไม่ JAX-WS สามารถขนส่ง SOAP ผ่าน HTTP และ XML ผ่าน HTTP ได้ แต่สิ่งนี้ทำให้ JAX-WS สงบ. การพักผ่อนเป็นแนวคิดที่แตกต่างกันอย่างสิ้นเชิง
hagrawal

46

JAX-WS - เป็น Java API สำหรับ XML-Based Web Services - วิธีมาตรฐานในการพัฒนา Web- Services ในSOAP (Simple Object Access Protocol)

การเรียกใช้บริการทางเว็บดำเนินการผ่านการเรียกโพรซีเดอร์ระยะไกล สำหรับการแลกเปลี่ยนข้อมูลระหว่างไคลเอนต์และบริการเว็บจะใช้โปรโตคอล SOAP การแลกเปลี่ยนข้อความระหว่างไคลเอนต์และเซิร์ฟเวอร์ที่ดำเนินการผ่านXMLข้อความ SOAP ที่ใช้

ไคลเอ็นต์ของ JAX-WS Web- Service จำเป็นต้องมีไฟล์WSDLเพื่อสร้างโค้ดปฏิบัติการที่ไคลเอนต์สามารถใช้เพื่อเรียกใช้บริการ

JAX-RS - Java API สำหรับ RESTful Web Services RESTful Web Services แสดงเป็นทรัพยากรและสามารถระบุได้โดย Uniform Resource Identifiers ( URI ) การเรียกโพรซีเดอร์ระยะไกลในกรณีนี้แสดงถึงคำร้องขอHTTPและข้อมูลที่จำเป็นจะถูกส่งผ่านเป็นพารามิเตอร์ของคิวรี บริการบนเว็บ RESTful - ยืดหยุ่นกว่าสามารถใช้MIME ได้หลายประเภท โดยทั่วไปใช้สำหรับการแลกเปลี่ยนข้อมูล XML หรือการแลกเปลี่ยนข้อมูลJSON (JavaScript Object Notation) ...


1
คำอธิบายสั้น ๆ คมชัด !! ยอดเยี่ยม.
Saurabh Rai

0

ฉันทำงานกับ Apachi Axis1.1 และ Axis2.0 และ JAX-WS แต่ฉันขอแนะนำให้คุณต้อง JAX-WS เนื่องจากอนุญาตให้คุณสร้าง wsdl ในรูปแบบใดก็ได้ฉันกำลังดำเนินการเป็น GetInquiry () ใน Apache Axis2 มันไม่ได้ อนุญาตให้ฉันชื่อ Start Operation ใน Upper Case ดังนั้นฉันคิดว่ามันไม่ดีดังนั้นฉันขอแนะนำให้คุณใช้ JAX-WS


0

JAX-RS สามารถทำ Asynchronous Request เช่น JAX-WS ได้หรือไม่?

ใช่มันสามารถใช้ @Async ได้อย่างแน่นอน

JAX-RS สามารถเข้าถึงบริการเว็บที่ไม่ได้ทำงานบนแพลตฟอร์ม Java และในทางกลับกันได้หรือไม่?

ใช่มันสามารถทำได้

"REST มีประโยชน์อย่างยิ่งสำหรับอุปกรณ์ที่มีโปรไฟล์ จำกัด เช่นพีดีเอและโทรศัพท์มือถือ" หมายความว่าอย่างไร

ส่วนใหญ่จะใช้สำหรับ apis สาธารณะขึ้นอยู่กับว่าคุณต้องการใช้แนวทางใด

หมายความว่าอย่างไรโดย "JAX-RS ไม่ต้องการข้อความ XML หรือคำจำกัดความของบริการ WSDL - API?

มีมาตรฐานของตัวเอง WADL (Web application Development Language) มีคำขอ http ซึ่งคุณสามารถเข้าถึงทรัพยากรที่สร้างขึ้นโดยใช้ความคิดที่แตกต่างกันในกรณี Jax-Rs คุณต้องคิดถึงการเปิดเผยทรัพยากร

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