การรวม GWT และ Jersey

ฉันได้สร้างแอปที่ใช้ ExtJS ที่เชื่อมต่อผ่านคำขอ Ajax ไปยังบริการ Jersey RESTful ทุกอย่างทำงานได้ดีในแอปนี้ แต่ตอนนี้ฉันต้องการย้ายไปยัง ExtGWT

เนื่องจาก ExtGWT มีเซิร์ฟเล็ต RPC อยู่แล้วเพื่อจัดการการสื่อสารไคลเอนต์ - เซิร์ฟเวอร์ Jersey จะพอดีกับสถานการณ์นี้ที่ไหน ฉันไม่ควรใช้อีกต่อไปและเชื่อมต่อจากเซิร์ฟเล็ตของ GWT เข้ากับวิธีการบริการโดยตรงแทนหรือไม่

ในกรณีที่ฉันต้องการใช้ Jersey มีวิธีใดบ้างที่จะรองรับการทำให้ซีเรียลไลซ์ / ดีซีเรียลไลซ์เหมือนกับ RPC ของ GWT - ฉันคิดว่าฉันไม่ควรใช้ RPC ของ GWT อีกต่อไปในสถานการณ์นี้

ฉันชอบ Jersey เพราะมีการใช้งานแบบ REST ในขณะที่ RPC ของ GWT ฉันเดาว่าไม่มี ในอนาคต ฉันยังวางแผนที่จะเข้าถึงบริการ RESTful ของ Jersey จากแอป Android/iOS และ RPC ของ GWT อาจไม่เหมาะกับสถานการณ์นี้มากนัก

ขอบคุณ!


person Dan L.    schedule 17.01.2011    source แหล่งที่มา


คำตอบ (4)


คุณถูกต้องว่าคุณไม่สามารถใช้ GWT RPC กับ REST ได้ AFAIK, ExtGWT (GXT) ไม่รองรับการดึงข้อมูล REST ในตัว ฉันอาจผิดเพราะฉันไม่ได้ใช้ GXT มานานกว่าหนึ่งปีแล้ว

สำหรับการใช้ GWT RPC จะสะดวกมากที่จะสามารถนำโมเดลของคุณกลับมาใช้ใหม่ได้ทั้งบนเซิร์ฟเวอร์และไคลเอนต์ อย่างไรก็ตาม โมเดลของคุณจะต้องไม่ซับซ้อนเกินไป (จะต้องสามารถซีเรียลไลซ์เป็น JSON ได้) ไม่เช่นนั้นคุณจะต้องสร้าง DTO แยกต่างหากสำหรับโมเดลของคุณ คุณสามารถอ่านเพิ่มเติมได้ที่เอกสาร GWT RPC: GWT RPC

ถ้าเป็นฉัน ฉันจะใช้ทั้ง REST และ GWT RPC ฉันจะใช้ GWT RPC เพื่อสื่อสารกับรหัส GWT ไคลเอ็นต์ของฉันและ Jersey/REST สำหรับการสื่อสารกับแอปภายนอก

person JP Richardson    schedule 17.01.2011
comment
ขอบคุณ! ฉันยังคิดถึงตัวเลือกที่จะใช้ทั้งสองอย่างด้วย ในทางกลับกัน ฉันเพิ่งพบห้องสมุดบางแห่ง (ดูความคิดเห็นถัดไป) ที่ระบุว่าให้การสนับสนุน REST สำหรับ GWT แต่ฉันไม่แน่ใจว่าพวกมันมีความเสถียรแค่ไหนหรือทำงานกับพวกมันได้ง่ายแค่ไหน พวกเขาไม่ได้พูดอะไรเกี่ยวกับ Jersey เลย ฉันไม่รู้ว่าจะจัดการการผสานรวมได้อย่างไร หรือถ้าเป็นไปได้ - person Dan L.; 17.01.2011
comment
ดังนั้นฉันเดาว่าแม้ว่า GWT RPC จะไม่ได้ใช้ REST (ซึ่งเป็นมาตรฐานที่แพร่หลายซึ่งฉันชอบใช้จาก GWT) แต่ก็ยังคงเป็นมาตรฐานของ Google ซึ่งฉันเดาว่าเสถียร (ไม่มีข้อบกพร่อง ฯลฯ ) และง่ายต่อการ ทำงานร่วมกับซีเรียลไลซ์ / ดีซีเรียลไลซ์ Java bean ทุกชนิด เมื่อเปรียบเทียบกับผลิตภัณฑ์ที่เพิ่งเปิดตัวอย่าง RestyGWT ฉันถือว่า GWT RPC นั้นแข็งแกร่งมากและเป็นทางเลือกที่พิสูจน์ได้ในอนาคตมากกว่า คุณคิดอย่างไร? - person Dan L.; 17.01.2011
comment
ส่วนเรื่องrestygwt ผมไม่ได้ใช้ เลยให้ความเห็นไม่ได้ครับ GWT-Rest ดูเหมือนจะตายไปแล้ว เท่าที่ GWT-RPC สามารถพิสูจน์ได้ในอนาคต ในโลกเทคโนโลยี ฉันไม่แน่ใจว่ามีอะไรสามารถพูดได้ว่าเป็นหลักฐานในอนาคต อย่างไรก็ตาม ณ ขณะนี้ มันใช้งานง่ายและได้รับการสนับสนุนจาก Google เลยคิดว่าคงอยู่ได้สักพัก คุณยังมีตัวเลือกในการใช้ RequestFactory code.google.com/webtoolkit/doc/latest/ อย่างไรก็ตาม RequestFactory สนับสนุนการเขียนโค้ดจำนวนมาก เช่น. DTO และแบบจำลอง - person JP Richardson; 17.01.2011
comment
ขอบคุณสำหรับการค้นหาวิธีแก้ไขปัญหาของฉัน ฉันซาบซึ้ง - ฉันจะลอง restygwt อาจมีสิ่งดีๆ เกิดขึ้น - person Dan L.; 17.01.2011

โปรดดูโครงการ RestyGWT จะทำให้การเรียกทรัพยากร JAXRS JSON เป็นเรื่องง่ายเหมือนกับการใช้ GWT-RPC นอกจากนี้ โดยทั่วไปแล้ว คุณจะสามารถนำ DTO ตอบกลับคำขอเดิมกลับมาใช้ซ้ำได้จากฝั่งเซิร์ฟเวอร์บนฝั่งไคลเอ็นต์

person Hiram Chirino    schedule 12.02.2011

เราได้เขียนแอปพลิเคชัน (สมุดเกรด) ที่ใช้ฝั่งไคลเอ็นต์ GWT/GXT และสื่อสารผ่าน JAX-RS (Jersey) บนฝั่งเซิร์ฟเวอร์:

https://source.sakaiproject.org/contrib/gradebook2/trunk/

ในตอนแรกเราใช้ GWT-RPC แต่เลือกที่จะใช้ REST/JSON รูปแบบการสื่อสารทั้งสองมีข้อดี/ข้อเสียของตัวเอง มีข้อมูลบางอย่างเกี่ยวกับทั้งสองอย่างที่นี่: code.google.com/webtoolkit/doc/latest/tutorial/clientserver.html

person tamsler    schedule 01.02.2011

คุณสามารถรวม Jersey (เซิร์ฟเวอร์) กับ RestyGWT (ฝั่งไคลเอ็นต์) ได้อย่างราบรื่น ดู http://blog.javaforge.net/post/30469901979/gwt-rest สำหรับรายละเอียดเพิ่มเติม

person mk_    schedule 02.09.2012