ภาษาจาวา การใช้ Servlet ในการเรียกใช้ Web Service
ผ่านไปหลายวันผมไม่ได้เขียนบทความเลยก็เพราะช่วงนี้ผมงานยุ่งๆๆเลยลืมเขียนบท พอได้เวลาว่างก็เลยมาเขียนต่อ จากครั้งก่อนผมได้เขียนวิธีการสร้าง Web Service ไปแล้วมาถึงคราวนี้ก็เกี่ยวกับการเรียกใช้ Web Service บ้างโดยผมจะใช้ Servlet ของจาวาในการใช้ Web Service ของครั้งก่อน ซึ่งผมก็จะใช้ Netbean 6.9 เหมือนเดิม เพราะผมรู้สึกชอบตรงที่เขียน จาวาก็ได้ php ก็ดี ขั้นแรกก็แน่นอนเปิดโปรแกรม Netbean ขึ้นมา เลือกเป็น Java Web -> Web Application
ตั้งชื่อว่า CalculatorWSServletClient
เลือก Server เป็น GlassFish Server 3 ที่มาพร้อมกับ Netbean เพื่อความสะดวก เมื่อสร้างเสร็จแล้วก็ทำการ add Web Service Client ตามรูปโดยคลิกขวาที่ project แล้วเลือก Browse ที่ Project แล้วเลือก project ครั้งก่อน
จากนั้นทำการสร้าง Servlet โดยไปคลิกขวาที่ Project แล้ว New -> Servlet
ตั้งชื่อว่า ClientServlet ตั้งค่า package เป็น org.me.calculator.client แล้วกด Finish เมื่อเสร็จแล้วไปที่ method processRequest แล้วลบ comment ตรง out.println ออกแล้วทำการเขียนโค้ดเพื่อเรียกใช้ web service แต่การเรียกใช้ service อาจมีของผิดพลาดจึงต้องใส่ try catch ไว้ จากนั้นก็พิมพ์โค้ดตามนี้ครับ
[sourcecode language=”java”]
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType(“text/html;charset=UTF-8”);
PrintWriter out = response.getWriter();
try {
out.println(““);
out.println(“
“);out.println(“
out.println(““);
out.println(“
“);out.println(“
Servlet ClientServlet at ” + request.getContextPath () + “
“);
try{
org.me.calculator.CalculatorWSService service = new org.me.calculator.CalculatorWSService();
org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();
// TODO initialize WS operation arguments here
int i = 5;
int j = 5;
// TODO process result here
int result = port.add(i, j);
out.println(“Result = “+result);
}
catch(Exception ex){
}
out.println(““);
out.println(““);
} finally {
out.close();
}
}
[/sourcecode]
จากตัวอย่างสังเกตคำสั่ง 2 คำสั่งนี้ครับ
[sourcecode language=”java”]
org.me.calculator.CalculatorWSService service =
new org.me.calculator.CalculatorWSService();
org.me.calculator.CalculatorWS port = service.getCalculatorWSPort();
[/sourcecode]
เป็นการสร้าง object เพื่อเรียกใช้ web service ที่เราสร้างขึ้นส่วนคำสั่งที่เรียกใช้ web service add นั้นก็ให้ดูคำสั่ง int result = port.add(i, j); จะเห็นว่า object port นั้นเรียก method add ได้เลยผลก็นำไปเก็บในตัวแปร result นี้ก็เป็นตัวอย่างง่ายๆในการใช้บริการ web service นะครับถ้าอยากให้ผมเขียนบทความเกี่ยวกับเรื่องอะไรก็ comment ได้นะครับ