`
wangpx
  • 浏览: 202486 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

XFire 入门--轻松将 POJO 发布成 Web 服务2(转载)

    博客分类:
  • soa
阅读更多

将 POJO 发布成 Web 服务

XFire 框架中,我们有两种方式将 POJO 发布成 Web 服务:

  • 一种方式是直接使用 Web 服务接口和 Web 服务实现类(POJO)来发布;
  • 另一种方式是基于 JSR181 标准和注释技术将被注释的 POJO 发布成 Web 服务;

下面的章节中我们将学习使用第一种方式来完成 POJO 的 Web 服务发布。我们将使用经典的 ”Hello World!”例子来演示将 POJO 发布成 Web 服务所需要的步骤,不过我们不再是简单的访问一个 Java 方法来输出 ”Hello World!”字符串,而是转为在 SOA 环境下实现:Web 服务客户端通过访问服务器端发布成 Web 服务的 POJO 获得返回的 ”Hello World!”字符串后输出到客户端的控制台上。

将 POJO 发布成 Web 服务的基本步骤如下:

  1. 创建 Web 服务接口,声明该 Web 服务对外暴露的接口;
  2. 创建 Web 服务实现类,为 Web 服务接口提供实现;
  3. 修改 XFire 框架的服务发布文件 ---- services.xml,将 POJO 发布成 Web 服务。

下面我们通过创建 ”Hello World!”例子来具体说明如何实现这三个步骤。

1.创建 Web 服务接口 ---- HelloWorldService

要将 POJO 发布成 Web 服务,首先需要创建 Web 服务接口,在接口中声明该 Web 服务需要对外暴露的接口。

我们根据需要创建 Web 服务接口 ” HelloWorldService”,在其中声明一个 ”sayHello”方法,该方法返回 ”String ”类型的内容。” HelloWorldService”接口对应的 Java 文件代码如 清单 1-3

清单 1-3 WEB-INF\classes\org\vivianj\xfire\pojo\HelloWorldService.java

package org.vivianj.xfire.pojo;

 /**
 * HelloWorldService 中声明需要发布成 Web 服务的所有 Java 方法 
 * HelloWorldService 作为Web服务接口
 */
 public interface HelloWorldService {
	/**
	     * sayHello 方法声明了 Web 服务对外暴露的接口
	 * 
	 * @return 返回给客户端的字符串
	 */
	public String sayHello();
}

 

2.创建 Web 服务实现类 ”HelloWorldServiceImpl”

创建 Web 服务实现类 ”HelloWorldServiceImpl”,它继承 ”1、创建Web服务接口 ---- HelloWorldService” 中创建的 HelloWorldService 接口,并且为它声明的 ”sayHello”方法提供具体实现: 返回字符串”Hello World!”。 ”HelloWorldServiceImpl”类对应的 Java 文件代码如 清单 1-4


清单 1-4 WEB-INF\classes\org\vivianj\xfire\pojo\HelloWorldServiceImpl.java

package org.vivianj.xfire.pojo;

/**
 * HelloWorldServiceImpl 中为 Web 服务接口中声明的所有 Java 方法提供具体实现 
 * HelloWorldServiceImpl 作为 Web 服务的实现类
 */
public class HelloWorldServiceImpl implements HelloWorldService {

	/*
	 * sayHello 方法为 HelloWorldService 服务接口定义的 sayHello 方法提供具体实现
	 *  
	 * @see org.vivianj.XFire.pojo.HelloWorldService#sayHelloToXFire()
	 */
	public String sayHello() {
		return "Hello World!";
	}

}

 

3.修改 services.xml,将 POJO 发布成 Web 服务

我们可以在 WEB-INF\classes\META-INF\XFire\services.xml 文件中的 <beans …> 和 </beans> 元素中间加入如下的 xml 内容将上面创建的 HelloWorldService 发布成 Web 服务。

<service>
	<name>HelloWorldService</name>
	<namespace>http://vivianj.org/HelloWorldService</namespace>
	<serviceClass>
		org.vivianj.xfire.pojo.HelloWorldService
	</serviceClass>
	<implementationClass>
		org.vivianj.xfire.pojo.HelloWorldServiceImpl
	</implementationClass>
</service>

 

其中各元素的功能如下:

  • service

    service 标签和它所包含的 xml 内容为发布成 Web 服务的 POJO 提供完整的描述。

  • name

    Web 服务被发布时所采用的唯一名称。

  • namespace

    Web 服务发布时所使用的命名空间。

  • serviceClass

    Web 服务接口类的全名,包括包名和类名。

  • implemetationClass

    Web 服务实现类的全名,包括包名和类名。

更多 service 元素的子元素和它们的用法请参考 XFire 站点

通过上面的三个步骤,我们已经将新创建的HelloWorldService发布成了Web服务,我们可以使用下面的步骤测试一下创建的Web服务是否能够正常运行:

  1. 编译上面的步骤中创建的 Java 接口和类;
  2. 启动 TOMCAT 服务器。
  3. 等 TOMCAT 服务器完全启动后,打开浏览器,在地址栏中输入 http://localhost:8080/XFire/services/HelloWorldService?wsdl。

其中 HelloWorldServcie 是配置文件中 service\name 元素所定义的内容,”wsdl”参数表示查看该 Web 服务的 WSDL(Web服务描述语言)文件。

如果浏览器中出现如下图所示类似的内容,表示 Web 服务发布成功,我们可以编写客户端访问该 Web 服务从服务器获取返回字符串,本文下载资源中提供的下载文件中包含有可供参考的客户端类 org.vivianj.xfire.pojo.client.HelloWorldServiceClient。


图:浏览器中访问效果

如果浏览器中出现错误提示,请按照上面的步骤和说明检查已经完成的开发、配置过程是否完全正确。




 

结束语

本文中作者首先讲解了 XFire 框架的主要特性,XFire 框架的运行环境以及基于 XFire 框架开发 SOA 应用的基本步骤,并且借助于 SOA 环境下的 ”Hello World!”例子,详细的讲解和演示了如何基于 XFire 框架、经过简单的开发、配置步骤就将一个 POJO 类中包含的方法发布成Web服务。从 ”Hello World!”例子实现的过程中,我们可以发现 XFire 框架最大化的发挥了 POJO 的作用,减少了 SOA 实施时对框架本身的依赖,降低了 SOA 实施的难度,企业实施 SOA 时并不需要增加太多的投入就可以实现目标。






分享到:
评论

相关推荐

    XFire--Webservice入门xfire

    XFire--Webservice入门xfire

    xfire-all-1.2.6.jar.zip

    总结来说,Xfire是Java Web服务开发的一把利器,通过"xfire-all-1.2.6.jar",开发者能够轻松实现Web服务的创建、发布和消费,从而加速了软件开发的进程。虽然现在有了更新的技术选项,但Xfire的历史地位和它所代表的...

    webservice中用到的jar,xfire-jaxws-1.2.6.jar

    webservice中用到的jar,xfire-jaxws-1.2.6.jar,xfire-jaxws-1.2.6.jar,xfire-jaxws-1.2.6.jar

    xfire-jsr181-api-1.0-实例化webservic

    标题 "xfire-jsr181-api-1.0-实例化webservic" 指的是使用XFire框架结合JSR 181规范来创建和实例化Web服务的过程。XFire是一款早期的Java Web服务实现,它提供了一种简单、高性能的方式来创建和消费SOAP服务。JSR ...

    xfire-1.2.6.rar xfire-1.2.6.rar xfire-1.2.6.rar

    2. **服务器发现**:内置的服务器发现机制,允许玩家轻松找到并加入游戏服务器,提高了玩家体验。 3. **低延迟通信**:通过优化的数据包处理和网络层设计,XFire实现了低延迟的通信,确保了游戏的实时性和流畅性。 4...

    xfire-distribution-1.2.3

    总的来说,虽然 XFire-distribution-1.2.3 已经过时,但了解其工作原理和特性对于理解早期 Web 服务开发的历史和技术演变具有一定的价值。对于还在使用 JDK 1.4 的项目,XFire 可能仍然是一个可行的解决方案,但建议...

    xfire-distribution-1.2.6

    使用这个JAR,开发者可以将XFire集成到他们的Java应用中,创建、发布和消费Web服务。 除了主JAR,该资源包可能还包括以下内容: 1. 文档:如API参考、用户指南和开发者文档,帮助开发者理解如何使用XFire的各项功能...

    xfire-all-1.2.6 xfire所需的全部包

    本文将深入探讨Xfire 1.2.6这一历史版本,揭示其背后的各项技术细节和核心功能。 Xfire的核心价值在于它的游戏集成。通过与各种游戏的深度整合,Xfire能够在游戏运行时自动检测并显示好友的状态,允许玩家在游戏内...

    xfire包xfire-all-1.2.6.jar等

    需要引入如下包:commons-codec-1.2.jar、commons-httpclient-3.0.1.jar、jdom.jar、xfire-all-1.2.6.jar、wsdl4j-1.5.1.jar、commons-logging-1.0.4.jar、XmlSchema-1.4.7.jar

    xfire-1.2.6所有资源--实例

    2. **xfire-distribution-1.2.6.zip**:这是XFire 1.2.6的完整发行版,包含了运行库、API文档、示例代码和必要的配置文件。解压后,开发者可以直接使用这些资源进行开发工作,也可以通过源码学习XFire的内部实现。 ...

    xfire-1.2.6

    xfire-aegis-1.2.6.jar xfire-annotations-1.2.6.jar xfire-core-1.2.6.jar xfire-java5-1.2.6.jar xfire-jsr181-api-1.0-M1.jar xfire-spring-1.2.6.jar xfire-xmlbeans-1.2.6.jar xstream-1.3.1.jar

    webservice中用到的jar,xfire-java5-1.2.6.jar

    webservice中用到的jar,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar

    xfire--开发WEB SERVICE的又一利器

    本文将深入探讨Xfire的核心特性、优势以及如何利用它进行Web服务开发。 1. Xfire简介: Xfire(现已被Apache CXF所吸收)是一个基于Java的Web服务实现,它支持SOAP、WSDL、WS-Security等Web服务标准。它的设计目标...

    xfire相关jar包

    进行WebService开发中所用到的xfire所有相关包如:xfire-jsr181-api-1.0-M1.jar、xfire-jaxws-1.2.6.jar、xfire-java5-1.2.6.jar、xfire-core-1.2.6.jar、xfire-annotations-1.2.6.jar、xfire-aegis-1.2.6.jar、...

    xfire-jsr181-api-1.0-M1.jar,xfire-jsr181-api-1.0-M1.jar

    webservice中用到的jar,xfire-jsr181-api-1.0-M1.jar,xfire-jsr181-api-1.0-M1.jar

    xfire-core-1.2.6 源码

    一个压缩包3个文件(含源码) 费好大功夫找到的... Project metadata download: xfire-core-1.2.6.pom Binary download: xfire-core-1.2.6.jar Source download: xfire-core-1.2.6-sources.jar

    xfire-all-1.2.4.jar包webService

    xfire-all-1.2.4.jar 是一个与Web服务相关的Java库,它主要用于构建和消费SOAP(简单对象访问协议)服务。XFire是Apache CXF项目的一个早期版本,后来被CXF吸收并进一步发展。这个库包含了XFire的核心组件和其他必要...

    xfire-all-1.2.6.jar

    通过将xfire-all-1.2.6.jar作为Ant构建文件的依赖项,开发者可以在构建过程中自动生成客户端代码,简化了Web服务客户端的开发。 3. **动态代码生成**:XFire的一大亮点是它的动态代码生成能力。它能够根据WSDL(Web...

Global site tag (gtag.js) - Google Analytics