将 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 服务的基本步骤如下:
- 创建 Web 服务接口,声明该 Web 服务对外暴露的接口;
- 创建 Web 服务实现类,为 Web 服务接口提供实现;
- 修改 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 元素的子元素和它们的用法请参考 XFire 站点。
通过上面的三个步骤,我们已经将新创建的HelloWorldService发布成了Web服务,我们可以使用下面的步骤测试一下创建的Web服务是否能够正常运行:
- 编译上面的步骤中创建的 Java 接口和类;
- 启动 TOMCAT 服务器。
- 等 TOMCAT 服务器完全启动后,打开浏览器,在地址栏中输入 http://localhost:8080/XFire/services/HelloWorldService?wsdl。
其中 HelloWorldServcie 是配置文件中 service\name 元素所定义的内容,”wsdl”参数表示查看该 Web 服务的 WSDL(Web服务描述语言)文件。
如果浏览器中出现如下图所示类似的内容,表示 Web 服务发布成功,我们可以编写客户端访问该 Web 服务从服务器获取返回字符串,本文下载资源中提供的下载文件中包含有可供参考的客户端类 org.vivianj.xfire.pojo.client.HelloWorldServiceClient。
图:浏览器中访问效果
![](http://www.ibm.com/developerworks/cn/java/j-lo-xfire/fig001.jpg)
如果浏览器中出现错误提示,请按照上面的步骤和说明检查已经完成的开发、配置过程是否完全正确。
结束语
本文中作者首先讲解了 XFire 框架的主要特性,XFire 框架的运行环境以及基于 XFire 框架开发 SOA 应用的基本步骤,并且借助于 SOA 环境下的 ”Hello World!”例子,详细的讲解和演示了如何基于 XFire 框架、经过简单的开发、配置步骤就将一个 POJO 类中包含的方法发布成Web服务。从 ”Hello World!”例子实现的过程中,我们可以发现 XFire 框架最大化的发挥了 POJO 的作用,减少了 SOA 实施时对框架本身的依赖,降低了 SOA 实施的难度,企业实施 SOA 时并不需要增加太多的投入就可以实现目标。
分享到:
相关推荐
总结来说,Xfire是Java Web服务开发的一把利器,通过"xfire-all-1.2.6.jar",开发者能够轻松实现Web服务的创建、发布和消费,从而加速了软件开发的进程。虽然现在有了更新的技术选项,但Xfire的历史地位和它所代表的...
XFire--Webservice入门xfire
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框架结合JSR 181规范来创建和实例化Web服务的过程。XFire是一款早期的Java Web服务实现,它提供了一种简单、高性能的方式来创建和消费SOAP服务。JSR ...
总的来说,虽然 XFire-distribution-1.2.3 已经过时,但了解其工作原理和特性对于理解早期 Web 服务开发的历史和技术演变具有一定的价值。对于还在使用 JDK 1.4 的项目,XFire 可能仍然是一个可行的解决方案,但建议...
需要引入如下包: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
2. **服务器发现**:内置的服务器发现机制,允许玩家轻松找到并加入游戏服务器,提高了玩家体验。 3. **低延迟通信**:通过优化的数据包处理和网络层设计,XFire实现了低延迟的通信,确保了游戏的实时性和流畅性。 4...
activation.jar commons-logging.jar jdom-1.0.jar spring.jar spring-mock.jar stax-api-1.0.1.jar stax-utils-snapshot-20040917.jar wsdl4j-1.5.2.jar wstx-asl-3.0.1.jar ...xfire-xmlbeans-1.2.2.jar
使用这个JAR,开发者可以将XFire集成到他们的Java应用中,创建、发布和消费Web服务。 除了主JAR,该资源包可能还包括以下内容: 1. 文档:如API参考、用户指南和开发者文档,帮助开发者理解如何使用XFire的各项功能...
本文将深入探讨Xfire 1.2.6这一历史版本,揭示其背后的各项技术细节和核心功能。 Xfire的核心价值在于它的游戏集成。通过与各种游戏的深度整合,Xfire能够在游戏运行时自动检测并显示好友的状态,允许玩家在游戏内...
2. **xfire-distribution-1.2.6.zip**:这是XFire 1.2.6的完整发行版,包含了运行库、API文档、示例代码和必要的配置文件。解压后,开发者可以直接使用这些资源进行开发工作,也可以通过源码学习XFire的内部实现。 ...
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,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar,xfire-java5-1.2.6.jar
本文将深入探讨Xfire的核心特性、优势以及如何利用它进行Web服务开发。 1. Xfire简介: Xfire(现已被Apache CXF所吸收)是一个基于Java的Web服务实现,它支持SOAP、WSDL、WS-Security等Web服务标准。它的设计目标...
进行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、...
webservice中用到的jar,xfire-jsr181-api-1.0-M1.jar,xfire-jsr181-api-1.0-M1.jar
一个压缩包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 是一个与Web服务相关的Java库,它主要用于构建和消费SOAP(简单对象访问协议)服务。XFire是Apache CXF项目的一个早期版本,后来被CXF吸收并进一步发展。这个库包含了XFire的核心组件和其他必要...
XFire1.2版本,其中修改了META-INF/services 目录下的javax.xml.ws.spi.Provider文件,解决因为jdk1.6和XFire的架包冲突问题