`

[webservices开发]使用XFire开发一个简单的web服务

 
阅读更多

在这一节,你将了解到如何将一个普通的 java 文件转换为一个 web 服务, services.xml 文件是如何定义的,如何发布这个 web 服务、如何获得这个服务的 WSDL 、如何创建 Client 代码、如何测试这个 web 服务。

首先打开 Eclipse ,创建一个普通的 java 工程,将 xfire 所需的 jar xfire jar 加入到工程所需的类库引用中。创建一个简单的 java 文件,这个 java 文件简单到只提供一个 add 方法。

package com.kuaff.xfire.samples;

public class MathService

{

public long add( int p1, int p2)

{

return p1 + p2;

}

}

src 目录下创建 META-INF/xfire 目录,然后在 META-INF/xfire 目录下创建 services.xml 文件,文件内容为:

<beans xmlns="http://xfire.codehaus.org/config/1.0">

<service>

<name>MathService</name>

<namespace>http://www.kuaff.com/xfire/samples/MathService</namespace>

<serviceClass>com.kuaff.xfire.samples.MathService</serviceClass>

</service>

</beans>

这个文档定义了你要发布的 web 服务,这个定义了一个名为 MathService 的服务,服务类为 com.kuaff.xfire.samples.MathService

这样我们的一个简单的 web 服务就开发完成了,下面就要把它发布出去。

将工程 bin 目录下的所有的文件复制到第一节中配置的 tomcat/webapps/xfire/WEB-INF/classes 文件夹下,启动 tomcat ,你就可以检查这个 web 服务是否发布成功了。

打开浏览器,在浏览器地址栏中输入 http://localhost:8080/xfire/services/ ,正常情况下应该浏览器应该显示类似下图所示的页面。

<!-- [if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:195pt; height:90.75pt;mso-wrap-distance-left:9.05pt;mso-wrap-distance-right:9.05pt; mso-position-horizontal-relative:page;mso-position-vertical-relative:page'> <v:imagedata src="file:///C:/DOCUME~1/SMALLN~1/LOCALS~1/Temp/msohtml1/01/clip_image001.png" o:title="" embosscolor="#000002" /> <o:lock v:ext="edit" aspectratio="f" /> </v:shape><![endif]--><!-- [if !vml]--><!-- [endif]-->

<!-- [if gte vml 1]><v:shape id="_x0000_s1026" type="#_x0000_t75" style='position:absolute;left:0; text-align:left;margin-left:27pt;margin-top:7.8pt;width:42pt;height:31.5pt; z-index:-1' wrapcoords="11974 318 7513 5400 6809 7941 6574 9529 5400 13976 5870 15565 0 16835 0 18424 10800 20647 6574 20647 6574 20965 15730 20965 21365 19694 21600 16200 18783 15565 19957 10482 19487 4765 16200 1271 14557 318 11974 318" o:allowoverlap="f"> <v:imagedata src="file:///C:/DOCUME~1/SMALLN~1/LOCALS~1/Temp/msohtml1/01/clip_image003.wmz" o:title="" /> <w:wrap type="tight" /> </v:shape><![endif]--><!-- [if !vml]--><!-- [endif]-->

注意:请在浏览器中输入 http://localhost:8080/xfire/services/ 而不是 http://localhost:8080/xfire/services ,虽然两者显示的页面相同,但是点击页面上的链接,后者的链接会出错,因为后者后面少加了一个“ / ”。

点击 [wsdl] 链接,可以查看这个 web 服务的 wsdl 文档。

<!-- [if gte vml 1]><v:shape id="_x0000_i1026" type="#_x0000_t75" style='width:287.25pt;height:199.5pt;mso-wrap-distance-left:9.05pt; mso-wrap-distance-right:9.05pt;mso-position-horizontal-relative:page; mso-position-vertical-relative:page'> <v:imagedata src="file:///C:/DOCUME~1/SMALLN~1/LOCALS~1/Temp/msohtml1/01/clip_image005.png" o:title="" embosscolor="#000002" /> <o:lock v:ext="edit" aspectratio="f" /> </v:shape><![endif]--><!-- [if !vml]--><!-- [endif]-->

如果在你的机器上的显示如上面所示,则说明你的这个 web 服务发布成功,可以正常提供基于 http web 服务。

下面一个问题就是如何开发一个 Client ,来消费(使用)这个 web 服务。

XFire Axis asp.net 以及其它的一些商业产品都提供了根据 wsdl 文档创建客户端代码的工具。这里采用 Xfire 提供的 wsgen 工具来创建客户端的访问代码。

Wsgen xfire 提供的一个 ant task task 的申明如下:

<taskdef name= "wsgen" classname= "org.codehaus.xfire.gen.WsGenTask" classpathref= "xfire jar 路径 " />

这样,就可以在 build.xml 文件中使用这个 task

<wsgen outputDirectory= "client" wsdl= "MathService.wsdl" package= "com.kuaff.xfire.samples" />

outputDirectory 属性定义创建的代码所在的文件夹, wsdl web 服务的 wsdl 文件, package 代表创建的代码的 packege 。还可以通过 binding 属性制定 bind 类型: jaxb 或者是 xmlbeans

这样,就会在 client 文件夹下创建多个 java 文件,这些文件提供了访问 web 服务的方法。

在这里声明一点,创建的代码大量的使用了 java 注释,这个 JSE5 中提供的新特性,所以你需要使用 JSE5 编译, Eclipse 也必须要 3.1 以上的版本。

这段 ant 脚本将创建三个文件: MathServicePortType MathServiceImpl MathServiceClient MathServicePortType 是这个 web 服务的客户端接口存根、 MathServiceImpl 实现了这个接口。 MathServiceClient 封装了访问这个 web 服务的方法。

最后,你可以创建一个单元测试类,用来测试这个客户端类。这个类的内容如下:

package com.kuaff.xfire.samples;

import junit.framework.TestCase;

public class MathServiceClientTest extends TestCase

{

public void testAdd()

{

MathServiceClient client = new MathServiceClient();

MathServicePortType ms = client.getMathServiceHttpPort();

long result = ms.add(10, 20);

assertEquals (result, 30);

}

}

分享到:
评论

相关推荐

    MyEclipse+XFire开发Web Services

    ### MyEclipse+XFire开发Web Services #### 实验背景与目标 随着互联网技术的发展,Web Services作为一种重要的软件架构模式,在分布式系统中的应用越来越广泛。它允许不同平台、语言的应用程序通过标准协议(如...

    XFire_demo.zip_XFire_demo_java webservices_webservices_xfire dem

    这里采用的是XFire实现+tomcat" 指出,这个压缩包包含了一个使用XFire框架和Tomcat服务器来实现Web服务的完整流程。XFire是早期流行的Java Web服务框架,它提供了轻量级且高效的解决方案,而Tomcat则是一个广泛使用...

    eclipse 使用xfire开发webservices server

    标题中的“eclipse使用xfire开发webservices server”意味着我们将使用Eclipse IDE和XFire来创建和部署一个Web服务服务器。以下是一步步的操作步骤: 1. **安装Eclipse和XFire插件**:首先确保你的Eclipse已经安装...

    Java中使用XFire开发简单的WebServices.pdf

    通过以上步骤,我们成功地使用XFire框架在Java环境中创建了一个简单的Web Services项目,并将其部署到了Tomcat服务器上。在实践中可能会遇到一些问题,例如常见的500错误等,这通常需要检查配置文件、依赖库是否正确...

    XFire用户库包-开发WebServices服务

    在本文中,我们将深入探讨如何利用XFire用户库包来开发Web Services服务。 首先,我们需要理解什么是Web Services。Web Services是一种基于互联网的软件应用,它允许不同系统间的交互,通过标准的协议如SOAP...

    XFire开发Web Services

    【XFire 开发Web Services】是指使用XFire框架来创建和使用Web服务的过程。XFire是Java中一个轻量级的Web服务实现,它提供了一种简单的方式来构建和消费SOAP服务。下面将详细介绍如何利用XFire进行Web服务的开发。 ...

    使用XFire开发一个简单的web服务

    ### 使用XFire开发一个简单的Web服务 在Java领域中,Web服务是一种常用的技术手段,用于实现不同系统间的通信。XFire作为一个轻量级且功能强大的Web服务框架,它简化了开发过程,使得开发者能够更容易地创建和部署...

    webservices学习之xfire

    在Web服务领域,XFire是一个历史悠久但至关重要的工具,它为Java开发者提供了一种实现Web服务(Web Services)的高效框架。XFire,全称为XFire Java Web Services,是Apache CXF项目的前身,它在早期为构建基于SOAP...

    xfire webservices源码

    【xfire webservices源码】是一个用于理解和学习Web服务实现的开源项目,它基于XFire框架,该框架是Java世界中一个流行的SOAP和RESTful Web服务实现工具。XFire允许开发者快速、简单地构建和部署Web服务。在这个源码...

    J2me和WebServices相连过程使用xfire(一)

    XFire是一个流行的Java Web服务框架,它简化了服务的创建、部署和消费过程。 首先,确保你拥有必要的工具。对于J2ME开发,你需要Java Wireless Toolkit (WTK) 2.5,这是Sun Microsystems(现为Oracle)提供的官方...

    Myeclipse开发基于xfire的Web Services

    使用Myeclipse开发基于xfire的Web Services 入门,如何开发Web Services

    java使用xfire创建和调用webservices

    Java 使用 XFire 创建和调用 WebServices 是一个常见的任务,特别是在构建分布式系统和服务导向架构(SOA)中。XFire 是一个 Java 框架,它简化了 WebService 的开发和消费过程。在这个主题中,我们将深入探讨如何...

    开发webservices所需要的全部jar包xfire

    为了使用XFire开发Web服务,你需要按照以下步骤操作: 1. **安装和配置**:下载并解压提供的压缩包,将其中的jar文件添加到你的项目类路径中。确保包含所有必需的依赖,如XFire核心库、JAXB库等。 2. **创建服务...

    XFire实现webServices源码

    XFire则是一个简化这一过程的工具,它允许开发者通过简单的API创建和调用Web服务。 二、XFire简介 XFire是由Apache CXF的前身,旨在提供轻量级、高性能的Web服务实现。它的核心特性包括: 1. **动态代理**:XFire...

    java webservices xfire Demo

    Xfire是一个轻量级、快速且易于使用的框架,专门用于构建基于SOAP(简单对象访问协议)的Web服务。在本文中,我们将深入探讨Xfire在Java Web服务开发中的应用,并通过提供的Demo来学习其基本操作。 首先,理解Java ...

    实现webServices接口调用demo

    XFire是Apache CXF项目的一个前身,它提供了简单、高效的方式来创建和消费Web服务。XFire利用Java注解来简化服务的配置,使得开发者能够快速地创建服务端点和服务客户端。 三、实现Web服务接口 1. 定义服务接口:...

    MyEclipse开发的基于xfire的 webservices 最简单的demo

    【MyEclipse开发的基于Xfire的Web服务(Webservices)最简单DEMO详解】 在软件开发领域,Web服务是一种允许不同系统之间进行通信和数据交换的技术。它基于开放标准,如SOAP(Simple Object Access Protocol)和WSDL...

    xfire开发web service文档.rar

    Web服务是一种基于互联网的软件应用程序接口(API)的交互...总的来说,这个压缩包资源对于任何想要深入了解使用XFire开发Web服务的Java开发者来说,都是一个宝贵的资料库,它提供了从零开始构建Web服务的全面指导。

    XFire-WebServices傻瓜配置.doc

    XFire-WebServices的配置过程相对简单,主要涉及接口定义、服务实现、服务配置和客户端调用。通过这种方式,开发者可以快速地构建和测试Web服务。同时,它还支持对远程Web服务的调用,使得集成第三方服务变得容易。...

Global site tag (gtag.js) - Google Analytics