开发环境
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来运行或调试该程序