8

Java Web Services


แบบฝึกหัดในบทนี้เป็นการพัฒนาโปรแกรม Web Services สำหรับ Java EE โดยใช้ชุดคำสั่ง JAX-WS ซึ่งจะเป็นการพัฒนาบน Server ที่รันบน Java EE โดยชุดคำสั่ง JAX-WS จะช่วยทำให้การสร้างและเรียกใช้ Web Services ด้วยภาษา Java เป็นไปได้ง่ายขึ้น


การพัฒนา Web Services จะแบ่งเป็นสองส่วนคือ Web Service Provider (Server) และ Web Service Requester (Client) แบบฝึกหัดนี้จะเริ่มจากการพัฒนา Web Service ซึ่งสามารถทำได้ 2 วิธีคือ


แบบฝึกหัดนี้จะแสดงขั้นตอนการใช้ NetBeans สร้าง Web Service ที่ชื่อ calculateTax โดยใช้ Servlet ซึ่งจะรันอยู่บน GlassFish V2 Server เพื่อแสดง Web Services การส่ง SOAP message และ WSDL ของ Services


การพัฒนา calculateTax Web Service


แบบฝึกหัดนี้จะสร้าง Web Application Project ขึ้นใหม่ เพื่อใช้ในการเก็บ Web Service โดยมีขั้นตอนการพัฒนาดังนี้


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

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

  3. กำหนด Project Name เป็น TaxWSDemo แล้วเลือก Project Location เป็น folder ที่เราต้องการจะเก็บไฟล์ไว้ จากนั้นเลือก Server เป็น GlassFish V2 กำหนด Jave EE Version: เป็น Java EE 5 แล้วกด Finish

  4. คลิ๊กขวาที่โหนด TaxWSDemo จากนั้นเลือกคำสั่ง New > Other ให้เลือก Categories เป็น Web Services และ Web Service แล้วกด Next

  5. ในไดอะล็อก New Web Service กำหนด Web Service Name: เป็น TaxServices และ Package: เป็น ws ดังรูป แล้วกด Finish




  1. หน้าต่าง Editor จะแสดงไฟล์ที่ชื่อ TaxServices.java ดังรูป ให้คลิ๊กที่ปุ่ม Add Operation




  1. ในไดอะล็อก Add Operation กำหนด Method เป็น calculateTax ชนิดของ Return Type เป็น double และ เพิ่ม Input parameter หนึ่งตัวคือ income ชนิด double ดังรูป แล้วกด OK




  1. โหมด Design ของไฟล์ Taxservices.java จะแสดงดังรูป




  1. คลิ๊กที่แทป Source ของ TaxServices.java และปรับปรุงเมธอด calculateTax ดังนี้


import javax.jws.WebMethod;

import javax.jws.WebParam;

import javax.jws.WebService;



@WebService()

public class TaxServices {

@WebMethod

public double calculateTax(@WebParam(name = "income") double income) {

if (income < 70000) {

return 0;

} else if (income < 100000) {

return (income - 70000) * 0.05;

} else if (income < 500000) {

return (income - 100000) * 0.1 + 3500;

} else {

return (income - 500000) * 0.2 + 43500;

}

}

}


  1. คลิ๊กขวาที่โหนด TaxWSDemo จากนั้นเลือกคำสั่ง Clean and Build จากนั้นคลิ๊กขวาที่โหนด TaxWSDemo อีกครั้ง แล้วเลือก Undeploy and Deploy


การทดสอบ Web Service


โปรแกรม Web Service จะถูกติดตั้งบน GlassFish V2 และสามารถเรียกดูได้การใช้ System Admin Console โดยการเปิด Web Browser และเรียก url ที่ http://localhost:4848 โดยกำหนด user เป็น admin และ password เป็น adminadmin


  1. โปรแกรมจะแสดง Applications และ Web Services ดังแสดงในรูปที่ 1

รูปที่ 1 แสดงรายละเอียดใน GlassFish V2 (Sun Java Application Server)


  1. เราสามารถที่จะทดสอบ Web Service นี้ผ่านทาง Admin Console ได้โดยกดปุ่ม Test หรือทดสอบจาก Netbeans โดยคลิ๊กขวาที่ TaxServices ใน Web Services ดังแสดงในรูปที่ 2


รูปที่ 2 แสดงวิธีการทดสอบ Web Service ใน Netbeans



  1. ปรแกรมจะแสดงหน้าจอเพื่อให้เราป้อนข้อมูลอินพุต ซึ่งคือจำนวนเงินที่ต้องการคำนวณภาษี ในที่นี้จะใส่ตัวเลขเป็น
    730000 ดังแสดงในรูปที่ 3

รูปที่ 3 แสดงหน้าต่างสำหรับให้ทดสอบเรียก Web Service


  1. แล้วกดปุ่ม calculateTax โปรแกรมจะเรียกใช้ Web Services และจะแสดงผลลัพธ์ที่ได้ พร้อมทั้งแสดงค่า SOAP Request ดังแสดงในรูปที่ 4



ูปที่
4 แสดงผลลัพธ์ที่ได้จากการเรียกใช้ Web Service และแสดง SOAP Request


  1. เราสามารถที่จะแสดงคำสั่ง WSDL ของ Web Service นี้โดยการเลือก WSDL File โปรแกรมจะทำการเรียก url ชื่อ http://localhost:8080/TaxWSDemo/TaxServicesService?WSDL และจะได้ผลลัพธ์ดังแสดงในรูปที่ 5


รูปที่ 5 แสดงรายละเอียดของ WSDL


การพัฒนา Desktop Web Service Client


เราจะสร้าง Java Desktop Application เพื่อที่จะเรียกใช้ Web Service ที่ชื่อ calculateTax โดยจะมีขั้นตอนการพัฒนาดังนี้


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

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

  3. กำหนด Project Name เป็น WSDesktopClient แล้วกด Finish

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

  5. ในไดอะล็อก New Web Service Clientเลือก WSDL URL: โดยกำหนดเป็นhttp://localhost:8180/WSDemo/TaxServicesService?WSDLและ Package เป็น ws กด Finish

  6. โปรแกรมจะแสดง Web Service Reference โดยมี Service ชื่อ calculateTax ดังรูป



  1. ในหน้าต่าง Projectsลากโหนด calculateTax ลงในไฟล์ Main.java ของหน้าต่าง Editor โปรแกรมจะเพิ่ม source code ให้อัตโนมัติ ให้แก้ไขค่า double1 เป็น730000 และจะได้ source code ดังนี้


public static void main(String[] args) {

try { // Call Web Service Operation

ws.TaxServicesService service = new ws.TaxServicesService();

ws.TaxServices port = service.getTaxServicesPort();

// TODO initialize WS operation arguments here

double income = 730000.0;

// TODO process result here

double result = port.calculateTax(income);

System.out.println("Result = "+result);

} catch (Exception ex) {

// TODO handle custom exceptions here

} // TODO code application logic here

}


  1. ทดลองรันโปรแกรมจะเห็นค่าผลลัพธ์เป็น Result = 89500.0

Java Web Services Thanachart Numnonda and Thanisa Kruawaisayawan