11/15/2013

[Alfresco] ลองทำ Web Service ด้วย Java

Alfresco มีช่องทางในการที่ให้เราสร้าง Web Service ขึ้นมาได้โดยใช้ความสามารถของ Spring Surf ซึ่ง Alfresco เราสามารถสร้างได้โดยเลือกระหว่าง 2 ภาษาคือ JavaScript ซึ่งใช้ Rhino Library ของ Mozilla เหมาะสำหรับงานที่ไม่มีความซับซ้อนมากมายอะไร และ Java สำหรับงานที่ซับซ้อนมาก



ถ้าเราใช้ JavaScript การที่จะเขียนขึ้นมานั้นไม่ได้ยากเย็นอะไร ด้วยการเขียนไฟล์เพียง 1 ไฟล์ ก็สามารถทำงานได้แล้ว แต่งานที่ต้องทำตอนนี้ดันต้องใช้ Service ของ Alfresco ซึ่งเขียนด้วย Java ถ้าจะเขียนด้วย JavaScript มันดูจะวุ่นวายและเละได้เลยคิดว่าใช้ Java นี่แหละแล้วใช้ Spring Inject เข้าไป

...แล้วมันทำงานยังไงฟระ!!

คำถามนี้เกิดขึ้นมาหัวเพราะว่าตอนเขียนด้วย JavaScript เราใช้ชื่อไฟล์เป็นตัวกำหนดว่ามันจะทำงานที่ HTTP Method อะไรของ Web Service แต่ Java มันไม่ใช่แน่ๆ ระหว่างหาข้อมูลเลยกำหนดขอบเขตด้วยเทสไว้ก่อนดีกว่า

ตอนเขียนเทสคิดได้ว่าระบบ Audit Service ของ Alfresco มันก็ใช้ Java เหมือนกันเลยไปนั่งอ่านโค้ด มัน extends AbstractAuditWebScript ซึ่ง extends DeclarativeWebScript อีกที โอ้ว!! ได้หนทางล่ะเพราะงั้นก็จัดเลย

แล้วก็เขียน description และหน้า view ของ Web Service ขึ้นมาตามปกติ


แต่เดี๋ยวก่อน แล้วมันจะเชื่อมหากันได้ไงระหว่าง Web Service description กับ Java Class ที่เราเขียนไป ก็หาต่อไปอีกจนพบแสงสว่างว่าเราต้องเขียน Sping Bean ขึ้นมาเพื่อ map กับ Web Service description ของเราซะ โดยมันจะ map ชื่อ bean ของเรากับ path ของ Web Service description ให้เอง


เอาล่ะจากนั้นลองรันเทสดู

หลับสบายล่ะ~~~