4

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 ดังรูป




การพัฒนา findBookWeb Service


ขั้นตอนนี้จะสร้าง Web Service ที่ชื่อ findBook จากStateless Session Bean ที่ชื่อ BooksFacade.java ที่พัฒนาจากแบบฝึกหัด Enterprise Java Bean โดย Services นี้จะใช้ในการค้นหาหนังสือจากฐานข้อมูลจากหมายเลข isbn ที่ป้อนเข้า และมีขั้นตอนการพัฒนาดังนี้


  1. เลือกหน้าต่าง Projects แล้วคลิ๊กขวาที่โหนด BookApp-ejb จากนั้นเลือกคำสั่ง New > File/Folder

  2. เลือกไฟล์ 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);

}

...

}


  1. กด Alt-Shift-F เพื่อทำการ import class ที่เกี่ยวข้องแล้วกดปุ่ม Save

  2. ทำการ Deploy Project


การพัฒนาโปรแกรม Web Application เพื่อเรียกใช้ Web Service


ขั้นตอนนี้จะเป็นการพัฒนา Web Application บน GlassFishV2 เพื่อเรียกใช้ Web Service ที่ชื่อ findBookโดยมีขั้นตอนการพัฒนาดังนี้


  1. เลือกเมนู File => New Project..

  2. ในไดอะล็อก New Project ให้เลือก Categories เป็น Web และ Projects เป็น Web Application แล้วกด Next

  3. กำหนด Project Name เป็น WSServletClient จากนั้นเลือก Server เป็น GlassFish V2กำหนด Jave EE Version: เป็น Java EE 5 แล้วกด Finish

  4. เลือกหน้าต่าง Projects แล้วคลิ๊กขวาที่โหนด WSServletClientจากนั้นเลือกคำสั่ง New => Other..

  5. ในไดอะล็อก New Fileให้เลือก Categories ที่ชื่อ Web Services เลือก File Types: เป็น Web Service Clientแล้วกด Next

  6. ในไดอะล็อก New Web Service Clientเลือก Project โดยกำหนดBooksFacadeService ดังรูป




  1. กด Finish โปรแกรมจะแสดง Web Service Reference โดยมี Service ชื่อ findBook

  2. ในหน้าต่าง Projectsเลือกโหนด WSServletClient แล้วเลือก New > Servlet..

  3. กำหนด Servlet Name: เป็น BookServlet แล้วกด Finish

  4. ในหน้าต่าง 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

}


  1. กดปุ่ม Save


การทดสอบโปรแกรม


  1. ทำการ Build และ Deploy โปรเจ็ค BookAppWS

  2. Runโปรแกรม WSServletClient

  3. เลือก URL ของ Web Browser เป็น http://localhost:8080/WSServletClient/BookServlet?isbn=123 โดยที่ 123 คือหมายเลข isbn ทีมีอยู่ในฐานข้อมูล

  4. โปรแกรมจะแสดงผลเป็นรายละเอียดของหนังสือในฐานข้อมูล



Java Web Services Thanachart Numnonda and Thanisa Kruawaisayawan