在這篇文章中,我們以一支Servlet Web應用程式呼叫/存取一個可以正常連線運作的Web Service服務。一般而言,將WSDL轉成對映的Java程式代碼,其實就是在執行JDK的wsimport.exe指令,目的是要把WSDL指向的URL的Web Service有關的類別下載到本地端讓Servlet Web應用程式來參考使用。
建立一個Java Web應用程式專案
首先,在「Projects」項目底下按滑鼠右鍵帶出脈絡選單後,選擇「New Project...」項目,進入到「Choose Project」對話視窗,選取Java Web -> Web Application的專案類型,來到Name and Location的對話視窗,請填入Project Name為WelcomeWebClient,其他部分都使用原預設值,然後按Finish鈕建立專案。
透過WSDL產生Web Service Client
將滑鼠指標指向WelcomeWebClient專案小圖示上,右擊滑鼠帶出脈絡選單後,選取「Web Service Client...」子項目,稍後進入到WSDL and Client Location對話視窗畫面,選擇WSDL URL核對按鈕,隨後把WSDL連結:http://localhost:8080/Welcome/WelcomeWebServiceService?wsdl輸入到右邊的文字欄位,再按下Finish按鈕以讓系統自動生成WSDL所對映的相關Web Service類別。
撰寫一支Servlet來呼叫WelcomeWebService服務
把滑鼠滑動到Source Packages小圖示上,點擊滑鼠右鍵展開脈絡選單,選取「Servlet」子項目,畫面帶到Name and Location對話方塊,Class Name填入ServletClient、Package則為jcode.test.servlet,其他部份維持預設值。再按Next來到Configure Servlet Deployment對話視窗請保持預設設定值。在按下Finish按鈕ServletClient程式創建完成。
打開剛才建立好的ServletClient程式代碼,把滑鼠移到Web Service References的「+」小圖示,依序展開樹狀結構(Web Service References -> WelcomeWebServiceService -> WelcomeWebServiceService -> WelcomeWebServicePort -> wlecome),直到出現「welcome」小圖示並且把它拖曳到右邊ServletClient類別的程式碼中,如下列程式碼所表示。
在ServletClient類別的processRequest方法中撰寫一段如下的程式碼。
protected void processRequest(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html;charset=UTF-8"); PrintWriter out = response.getWriter(); try { String result = welcome("Monkey"); out.println(result); } finally { out.close(); } }
完成以上ServletClient建立、welcome方法的產生以及processRequest程式代碼的修改之後,我們還需要把WelcomeWebClient專案佈署到GlassFish Server 3伺服器上,
然後打開瀏覽器輸入http://localhost:8080/WelcomeWebClient/ServletClient完成測試。
沒有留言:
張貼留言