您的位置:首页 > 编程语言 > Java开发

MyEclipse下XFire开发Webservice实例

2012-04-27 12:13 543 查看

MyEclipse下XFire开发Webservice实例

最近在研究JAVA开发Webservice,发现网络上比较流行的几种选择AXIS、XFire、CFX(XFire的下一代),前几天转了几篇关于这三种选择的比较的文章,对它们已经有了些概念。决定自己实践一个例子

在开始前,先介绍一些概念:

XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml )

MyEclipse Web Services是建立在XFire Java SOAP框架和工具基础上的, XFire是一款开源的Java SOAP框架。它拥有一个轻量级的信息处理模块,通过STAX来与SOAP信息相结合。提供了一个工作在Web Services下的简单API,支持POJO和schema开发. XFire支持 Web Services standards,Spring 整合, 支持JBI , 支持 JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP,
In-memory传输协议

一、环境配置:MyEclipse7.0

JDK1.6

二、创建Web Service Project

1)在MyEclipse中选择File—>New—>Other,选择Web Service Project



2)Project Name:WebServiceServer,Framework:XFire,其他选项默认



3)Next,这一步保持默认值

4)Project Library选择,选择XFire 1.2 Core Libraries



5)Finish,创建成功后看到的工程目录如下:



6)完成以上5步后,查看WebRoot/WEB-INF/web.xml

这里指明了当遇到/services/*请求时,将选用XFireConfigurableServlet来处理


三、创建Web Service Code

1)通过File—>New—>Other—>Web Services—>Web Service wizard创建JAVA CODE



2)选择通过JAVA CLASS创建Web Service



3)创建HelloWebService.java,通过New创建com.service package,向导将为工程自动创建对应的接口类与实现类



创建成功后查看WebServices/services.xml,发现配置文件多了以下内容:



4)修改HelloWebServiceImpl.java

package com.service;

//Generated by meteorWJ

public class HelloWebServiceImpl implements IHelloWebService {

public String example(String message) {

return getAuthor()+","+message;

}

private String getAuthor(){

return "meteorWJ";

}

}

四、部署并测试WebSericeServer

1)部署WebServiceServer



在部署向导中选择项目、服务器



2)启动服务器



3)测试WebService

MyEclipse提供了一个Web Service Explorer来测试Web Service



选择列表中的Launch SOAP Web Services Explorer

4)选择WSDL模式



5)在Explorer中选择WSDL Main,在右边的URL中输入
http://localhost:9090/WebServiceServer/services/HelloWebService?WSDL,单击"Go"
其中9090是服务器端口号,services在之前的web.xml中指定

若在Status中显示成功打开WSDL文件则测试成功



五、创建WebService客户端

经过以上几步,我们已经成功发布了一个WebService,现在需要创建一个客户端来调用该服务

1)创建Java Project:WebServiceClient

2)引入MyEclipse Libraries

右键WebServiceClient—>Build Path—>Add Libraries



选择XFire 1.2 HTTP Client Libraries



3)创建HelloWebService.java

在src目录下创建com.client.HelloWebService.java

package com.client;

import java.net.URL;

import org.codehaus.xfire.client.Client;

public class HelloWebService {

public static void main(String[] args) throws Exception

{

Client client = new Client(new URL("http://localhost:9090/WebServiceServer/services/HelloWebService?wsdl"));

Object[] results = client.invoke("example", new Object[] {"hello"});

System.out.println((String) results[0]);

}

}

4)在确认服务器启动的情况下,运行HelloWebService.java

右键点击Run As>Java Application,在控制台中看到如下输出



本次实例到此就算完成了。

备注:

http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml

MyEclipse下开发Web Service

作者:IT168 gmplayer 2006-10-28

内容导航:
概述,创建工程

第1页: 概述,创建工程
第2页: 创建Web Service
第3页: 部署Web Service Project
第4页: 测试

IT168技术文档

开发环境

Sun Java 5+ Eclipse 3.2 +MyEclipse 5.0.0.

概述

本文介绍了使用MyEclipse Web Service来迅速开发和测试一个HelloWorld Web Service,其中包括:

1. 介绍了MyEclipse Web Services的基本概念

2. 创建一个MyEclipse Web Services工程

3. 创建一个简单的HelloWorld Web Service

4. 在Web容器中,如Tomcat 5中部署Web Service

5. 使用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 standards,Spring 整合, 支持JBI , 支持 JAXB ,XMLBeans,Java 5 和JAX-WS.并支持HTTP, JMS, XMPP,
In-memory传输协议.

一. 创建Web Service工程

在MyEclipse 5.0中引入了一个新的工程类型即Web Service工程,该工程扩展了MyEclipse Web Project来支持额外的Web Service配置,开发和部署.本部分将使用Web Services Project wizard来创建和配置一个新的Web Service Projects Web Service Wizard将完成下列的动作:

创建MyEclipse J2EE Web Project

在工程中的web.xml文件中配置XFire Servlet

创建XFire services.xml配置文件

在工程中的构建路径中添加MyEclipse-XFire类库

添加一个指定的MyEclipse web project builder到.projects文件,以便部署services.xml文件到它合适的位置.如: <webroot>/WEB-INF/classes/META-INF/xfire/

运行Web Service Project Wizard

该向导包括三个页面, Page-1搜集Web Project配置细节, Page-2搜集XFire配置细节, Page-3在新建的构建路径中配置XFire类库

1. 执行Web Services Project Wizard.

1). 选择File>New>Other

2). 扩展MyEclipse种类按照J2EE工程的种类

3). 选择Web Services Project然后点击Next,如图所示



Figure-1: New Project Wizard Launcher

2. 添加Project Name,点击Next



Figure-2: Page-2, Collecting web configuration details

3.在向导的Page-2中添加XFire servlet和service.xml文件的配置信息,按照默认的值即可.



Figure-3: XFire servlet and services.xml configuration
IT168技术文档

4.在向导的Page-3中选择类库添加到工程的构建路径中,其中XFire Core Library是需要的,如果要在工程中开发一个客户端应用, XFire HTTP Client Libraries也是需要的.



Figure-4: Selecting XFire libraries to add to new web service project buildpath

5选择Finish完成Web Service工程的创建过程

Figure-5,显示了新创建的HelloWorld Web Service工程的组织结构,Web Service 工程和一个标准的MyEclipse Web工程很相似. XFire Web Service配置元素如图红色区域显示:



Figure-5: Web services artifacts of a new web service project

二. 创建Web Service-Code-first Strategy

在这部分将用MyEclipse Web Service Wizard并通过使用Code-first Strategy来创建一个HelloWorldService示例.

1. 执行MyEclipse Web Service Wizard,有两种方法来执行MyEclipse Web Service Wizard

方法1.从MyEclipse perspective toolbar中来执行向导

在打开的Web Service Wizard上的workbench上来选择新Web Service按钮

方法2.从workbench menubar执行向导

1. 从workbench menubar选择: File>New>Other>MyEclipse>Web Service



Figure-6: Launching Web Service Wizard

2. 在Page-1选择HelloWorld 工程并选择Create web service from Java bean

3. 选择Next到Page-2



Figure-7: Page-1 of new web service wizard

IT168技术文档

4. 填写Web Service的名字HelloWorldService

5. 选择Java Source folder或者选择New按钮来新建一个source folder

6. 填写Java package或者通过选择Browse按钮来选择一个已经存在的package.也可以选择New按钮来新建一个Java package

注意:对Service接口和Service执行的类的默认值是基于所填入Web Service名字来产生的.

7. 选择Next来初始化Web Service的创建过程



Figure-8: Page-2 of new web service wizard.

该向导产生了IHelloWorldService Java接口和HelloWorldServiceImpl Java类.并且在services.xml配置文件中创建了一个<service>实体(如图所示),注意到example(String message)方法在接口类中产生,当Web Service部署后作为一个测试操作.



Figure-9: Newly created HelloWorld interface and implementation class

三. 部署Web Service Project

Web Service可以部署在任何MyEclipse支持的J2EE应用服务器上,该部分将演示如何在Tomcat 5 Web容器上部署HelloWorld工程.

3.1部署HelloWorld Web Service Project

Figure-10显示了如何部署HelloWorld应用.

1. 从Server Manager中选择Deployer按钮(step-1)

2. 在Server Deployments对话框中选择Add to create a new deployment (step-2)

3. 在New Deployment对话框中选择HelloWorld工程并选择Exploded Archive选项

4. 在New Deployment对话框选择Finish来将HelloWorld在Tomcat 5默认的位置中打包为WAR

5. 选择OK完成部署



Figure-10: Three-step deployment process

新HelloWorld WAR部署将出现在Server Manager视图中Tomcat 5节点下.



Figure-11: Servers Manager View depicting deployed HelloWorld web service project
IT168技术文档

四. 启动Tomcat服务器

五. 使用Web Service Explorer测试Web Service

MyEclipse提供了一个Web Service Explorer来测试Web Service.

1. 在MyEclipse perspective中选择toolbar button来执行Web Service Explorer



Figure-15: Web Services Explorer launch button on workbench toolbar

2. 选择WSDL模式(Figure-16)

3. 在活动面板中键入HelloWorldService WSDL文档的URLhttp://localhost:8080/HelloWorld/services/HelloWorldService?WSDL,Web Service Explorer将下载自动产生的WSDL文档,该WSDL文档由XFire framework,并产生一系列的操作能够调用service.

4. 在活动面板中选择example操作并在in0域中键入HelloWorld

5. 选择Go按钮来调用在HelloWorldService上的example操作,,结果出现在Status面板上



Figure-16: Web Services Explorer testing HelloWorldService

六. 创建Java Test客户端

XFire提供了一个动态的代理框架,能够读取WSDL文档和创建潜在的消息服务使Java类来执行在Web Service的行为.该部分将为HelloWorld Web Service写一个Java Web Service客户端

6.1增加XFire类库配置

为了使example client能够在HelloWorld工程中运行,需要增加XFire HTTP Client类库到工程的构建路径中.

1. 在Package Explore视图中右击HelloWorld工程选择Build Path>Add Library

2. 选择MyEclipse Libraries

3. 选择XFire HTTP Client Libraries



Figure-17: Choosing the XFire HTTP Client Libraries

4. 选择Finish

6.2创建HelloWorldClient类

执行Java类向导来创建HelloWorldClient类



Figure-18: HelloWorldClient defined in New Java Class Wizard.

代码如下:




public static void main(String[] args) ...{


Service srvcModel = new


ObjectServiceFactory().create(IHelloWorldService.class);


XFireProxyFactory factory =


new XFireProxyFactory(XFireFactory.newInstance().getXFire());


String helloWorldURL =


"http://localhost:8080/HelloWorld/services/HelloWorldService";




try ...{


IHelloWorldService srvc = (IHelloWorldService)factory.create(srvcModel, helloWorldURL);


String result = srvc.example("hello world");


System.out.print(result);




} catch (MalformedURLException e) ...{


e.printStackTrace();


}


}


该段代码定义了创建一个XFire web service proxy的过程,该代理支持POJO IHelloWorldService接口

右键点击Run As>Java Application或者Debug As>JavaApplication来运行或调试该程序
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: