Java Web Services from Entity Class
แบบฝึกหัดในบทนี้เป็นการพัฒนาโปรแกรม Web Services สำหรับ Java EE โ ซึ่งจะเป็นการพัฒนาบน Server ที่รันบน Java EE โดยชุดคำสั่ง JAX-WS ซึ่งในกรณีนี้จะแสดงขั้นตอนการใช้ NetBeans สร้าง Web Services ที่ชื่อ findBook ซึ่งเรียกใช้ Session Bean ที่สร้างขึ้นในแบบฝึกหัด Enterprise Java Bean โดย Service นี้จะเป็นการค้นหาหนังสือจาก table ที่ชื่อ book ในฐานข้อมูล MySql

การพัฒนา Entity Class และ Session Bean
ขั้นตอนนี้จะเป็นการสร้าง Entity Classและ Session Bean เพื่อติดต่อกับ table ที่ชื่อ books ใน MySQLโดยมีขั้นตอนการพัฒนาเช่นเดียวกับแบบฝึกหัดการพัฒนา Enterprise Java Bean ซึ่งเราจะได้ Entity Class ที่ชื่อ Books และ Session Bean ที่ชื่อ BooksFacadeซึ่งมีเมธอด findBook ดังรูป

การพัฒนา findBookฺ Web Service
ขั้นตอนนี้จะสร้าง Web Service ที่ชื่อ findฺBook จากStateless Session Bean ที่ชื่อ BooksFacade.java ที่พัฒนาจากแบบฝึกหัด Enterprise Java Bean โดย Services นี้จะใช้ในการค้นหาหนังสือจากฐานข้อมูลจากหมายเลข isbn ที่ป้อนเข้า และมีขั้นตอนการพัฒนาดังนี้
เลือกหน้าต่าง Projects แล้วคลิ๊กขวาที่โหนด BookApp-ejb จากนั้นเลือกคำสั่ง New > File/Folder
เลือกไฟล์ BooksFacade.java แล้วเปลี่ยน source code โดยเพิ่มคำสั่ง annotation เพื่อประกาศให้ session bean นี้เป็น Web Service และเมธอด find เป็น Web Service โดยมีคำสั่งดังนี้
@WebService
@Stateless
public class BooksFacade implements BooksFacadeLocal {
...
@WebMethod(operationName=”findBook”)
public Books find(Object pk) {
return (Books) em.find(Books.class, pk);
}
...
}
กด Alt-Shift-F เพื่อทำการ import class ที่เกี่ยวข้องแล้วกดปุ่ม Save
ทำการ Deploy Project
การพัฒนาโปรแกรม Web Application เพื่อเรียกใช้ Web Service
ขั้นตอนนี้จะเป็นการพัฒนา Web Application บน GlassFishV2 เพื่อเรียกใช้ Web Service ที่ชื่อ findBookโดยมีขั้นตอนการพัฒนาดังนี้
เลือกเมนู File => New Project..
ในไดอะล็อก New Project ให้เลือก Categories เป็น Web และ Projects เป็น Web Application แล้วกด Next
กำหนด Project Name เป็น WSServletClient จากนั้นเลือก Server เป็น GlassFish V2กำหนด Jave EE Version: เป็น Java EE 5 แล้วกด Finish
เลือกหน้าต่าง Projects แล้วคลิ๊กขวาที่โหนด WSServletClientจากนั้นเลือกคำสั่ง New => Other..
ในไดอะล็อก New Fileให้เลือก Categories ที่ชื่อ Web Services เลือก File Types: เป็น Web Service Clientแล้วกด Next
ในไดอะล็อก New Web Service Clientเลือก Project โดยกำหนดBooksFacadeService ดังรูป

กด Finish โปรแกรมจะแสดง Web Service Reference โดยมี Service ชื่อ findฺBook
ในหน้าต่าง Projectsเลือกโหนด WSServletClient แล้วเลือก New > Servlet..
กำหนด Servlet Name: เป็น BookServlet แล้วกด Finish
ในหน้าต่าง Projectsลากโหนด findBook ลงในไฟล์ BookServlet.java ของหน้าต่าง Editor โปรแกรมจะเพิ่ม source code ให้อัตโนมัติ ให้ปรับปรุง source code ในส่วนที่เรียกใช้ Web Serviceดังนี้
try { // Call Web Service Operation
entity.BooksFacade port = service.getBooksFacadePort();
java.lang.Object arg0 = request.getParameter("isbn");
entity.Books book = port.find(arg0);
out.println("Title = "+ book.getTitle() + "<br>");
out.println("Author = "+ book.getAuthor() + "<br>");
out.println("Price = "+ book.getPrice() + "<br>");
} catch (Exception ex) {
// TODO handle custom exceptions here
}
กดปุ่ม Save
การทดสอบโปรแกรม
ทำการ Build และ Deploy โปรเจ็ค BookAppWS
Runโปรแกรม WSServletClient
เลือก URL ของ Web Browser เป็น http://localhost:8080/WSServletClient/BookServlet?isbn=123 โดยที่ 123 คือหมายเลข isbn ทีมีอยู่ในฐานข้อมูล
โปรแกรมจะแสดงผลเป็นรายละเอียดของหนังสือในฐานข้อมูล
Java Web Services Thanachart Numnonda and Thanisa Kruawaisayawan