開發環境
JDK+ Eclipse +MyEclipse
概述
本文介紹了使用MyEclipse Web Service來迅速開發和測試一個HelloWorld Web Service其中包括:
介紹了MyEclipse Web Services的基本概念
創建一個MyEclipse Web Services工程
創建一個簡單的HelloWorld Web Service
在Web容器中如Tomcat 中部署Web Service
使用Web Services Explorer來測試部署的Web Services
XFire Java SOAP框架概述
MyEclipse Web Services是建立在XFire Java SOAP框架和工具基礎上的 XFire是一款開源的Java SOAP框架它擁有一個輕量級的信息處理模塊通過STAX來與SOAP信息相結合提供了一個工作在Web Services下的簡單API支持POJO和schema開發 XFire支持 Web Services standardsSpring 整合 支持JBI 支持 JAXB XMLBeansJava 和JAXWS並支持HTTP JMS XMPP Inmemory傳輸協議
一 創建Web Service工程
在MyEclipse 中引入了一個新的工程類型即Web Service工程該工程擴展了MyEclipse Web Project來支持額外的Web Service配置開發和部署本部分將使用Web Services Project wizard來創建和配置一個新的Web Service Projects Web Service Wizard將完成下列的動作:
創建MyEclipse JEE Web Project
在工程中的webxml文件中配置XFire Servlet
創建XFire servicesxml配置文件
在工程中的構建路徑中添加MyEclipseXFire類庫
添加一個指定的MyEclipse web project builder到projects文件以便部署servicesxml文件到它合適的位置如: /WEBINF/classes/METAINF/xfire/
運行Web Service Project Wizard
該向導包括三個頁面 Page搜集Web Project配置細節 Page搜集XFire配置細節 Page在新建的構建路徑中配置XFire類庫
執行Web Services Project Wizard
) 選擇File>New>Other
) 擴展MyEclipse種類按照JEE工程的種類
) 選擇Web Services Project然後點擊Next如圖所示
Figure: New Project Wizard Launcher
添加Project Name點擊Next
Figure: Page Collecting web configuration details
在向導的Page中添加XFire servlet和servicexml文件的配置信息按照默認的值即可
Figure: XFire servlet and servicesxml configuration
在向導的Page中選擇類庫添加到工程的構建路徑中其中XFire Core Library是需要的如果要在工程中開發一個客戶端應用 XFire HTTP Client Libraries也是需要的
Figure: Selecting XFire libraries to add to new web service project buildpath
選擇Finish完成Web Service工程的創建過程
Figure顯示了新創建的HelloWorld Web Service工程的組織結構Web Service 工程和一個標准的MyEclipse Web工程很相似 XFire Web Service配置元素如圖紅色區域顯示:
Figure: Web services artifacts of a new web service project
二 創建Web ServiceCodefirst Strategy
在這部分將用MyEclipse Web Service Wizard並通過使用Codefirst Strategy來創建一個HelloWorldService示例
執行MyEclipse Web Service Wizard有兩種方法來執行MyEclipse Web Service Wizard
方法從MyEclipse perspective toolbar中來執行向導
在打開的Web Service Wizard上的workbench上來選擇新Web Service按鈕
方法從workbench menubar執行向導
從workbench menubar選擇: File>New>Other>MyEclipse>Web Service
Figure: Launching Web Service Wizard
在Page選擇HelloWorld 工程並選擇Create web service from Java bean
選擇Next到Page
Figure: Page of new web service wizard
填寫Web Service的名字HelloWorldService
選擇Java Source folder或者選擇New按鈕來新建一個source folder
填寫Java package或者通過選擇Browse按鈕來選擇一個已經存在的package也可以選擇New按鈕來新建一個Java package
注意:對Service接口和Service執行的類的默認值是基於所填入Web Service名字來產生的
選擇Next來初始化Web Service的創建過程
Figure: Page of new web service wizard
該向導產生了IHelloWorldService Java接口和HelloWorldServiceImpl Java類並且在servicesxml配置文件中創建了一個﹤SERVICE>實體(如圖所示)注意到example(String message)方法在接口類中產生當Web Service部署後作為一個測試操作
Figure: Newly created HelloWorld interface and implementation class
三 部署Web Service Project
Web Service可以部署在任何MyEclipse支持的JEE應用服務器上該部分將演示如何在Tomcat Web容器上部署HelloWorld工程
部署HelloWorld Web Service Project
Figure顯示了如何部署HelloWorld應用
從Server Manager中選擇Deployer按鈕(step)
在Server Deployments對話框中選擇Add to create a new deployment (step)
在New Deployment對話框中選擇HelloWorld工程並選擇Exploded Archive選項
在New Deployment對話框選擇Finish來將HelloWorld在Tomcat 默認的位置中打包為WAR
選擇OK完成部署
Figure: Threestep deployment process
新HelloWorld WAR部署將出現在Server Manager視圖中Tomcat 節點下
Figure: Servers Manager View depicting deployed HelloWorld web service project
四 啟動Tomcat服務器
五 使用Web Service Explorer測試Web Service
MyEclipse提供了一個Web Service Explorer來測試Web Service
在MyEclipse perspective中選擇toolbar button來執行Web Service Explorer
Figure: Web Services Explorer launch button on workbench toolbar
選擇WSDL模式(Figure)
在活動面板中鍵入HelloWorldService WSDL文檔的//localhost:/HelloWorld/services/HelloWorldService?WSDLWeb Service Explorer將下載自動產生的WSDL文檔該WSDL文檔由XFire framework並產生一系列的操作能夠調用service
在活動面板中選擇example操作並在in域中鍵入HelloWorld
選擇Go按鈕來調用在HelloWorldService上的example操作結果出現在Status面板上
Figure: Web Services Explorer testing HelloWorldService
六 創建Java Test客戶端
XFire提供了一個動態的代理框架能夠讀取WSDL文檔和創建潛在的消息服務使Java類來執行在Web Service的行為該部分將為HelloWorld Web Service寫一個Java Web Service客戶端
增加XFire類庫配置
為了使example client能夠在HelloWorld工程中運行需要增加XFire HTTP Client類庫到工程的構建路徑中
在Package Explore視圖中右擊HelloWorld工程選擇Build Path>Add Library
選擇MyEclipse Libraries
選擇XFire HTTP Client Libraries
Figure: Choosing the XFire HTTP Client Libraries
選擇Finish
創建HelloWorldClient類
執行Java類向導來創建HelloWorldClient類
Figure: HelloWorldClient defined in New Java Class Wizard
代碼如下:
package orgstephencatws;
import dehausxfire*;
import dehausxfireservice*;
import dehausxfireservicebinding*;
import dehausxfireclient*;
import *;
public class SampleClient {
/**
* @param args
*/
public static void main(String[] args) {
Service srvcModel = new
ObjectServiceFactory()create(IHelloWorldServiceclass);
XFireProxyFactory factory =
new XFireProxyFactory(XFireFactorynewInstance()getXFire());
String helloWorldURL =
//localhost:/HelloWorld/services/HelloWorldService;
try {
IHelloWorldService srvc = (IHelloWorldService)factorycreate(srvcModel
helloWorldURL);
String result = srvcexample(hello world);
Systemoutprint(result);
} catch (MalformedURLException e) {
eprintStackTrace();
}
該段代碼定義了創建一個XFire web service proxy的過程該代理支持POJO IHelloWorldService接口
右鍵點擊Run As>Java Application或者Debug As>JavaApplication來運行或調試該程序
From:http://tw.wingwit.com/Article/program/Java/ky/201311/28778.html