1、创建 Web 应用目录和基本元素
- 在 %TOMCAT_HOME%/webapps 目录下创建新的 Web 应用目录 “XFire”
[注] 其中的 %TOMCAT_HOME% 指向 TOMCAT 的安装目录。
- 在 ”XFire”目录下创建 ”WEB-INF”目录、
- 在 ” WEB-INF”目录下创建 ”lib”目录和 ”classes”目录
- 在 ” WEB-INF”目录下创建 Web 应用描述文件 ”web.xml”。
清单 1-1 WEB-INF\web.xml
1、 <?xml version="1.0" encoding="ISO-8859-1"?>
2、 <web-app xmlns="http://java.sun.com/xml/ns/j2ee"
3、 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4、 xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
5、 version="2.4">
6、
7、 <display-name>XFire实例</display-name>
8、 <description>
9、 基于XFire框架发布Web服务的例子
10、 </description>
11、
12、 </web-app>
|
2、拷贝 XFire 所需的支持类包文件
拷贝 %XFIRE_HOME%/lib 目录下所有文件到”lib”目录下,将 %XFIRE_HOME%/XFire-all-1.2.6.jar 文件也拷贝到 ”lib”目录下。将 xalan 安装包中的所有 jar 文件和所需要的支持 jar 文件拷贝到相同的 ”lib”目录下。
[注] 为了减少拷贝的 jar 文件的数目,开发者可以根据项目的需要选择需要拷贝的 jar 文件,而不是全部拷贝,如何根据需要选择拷贝合适的类包文件请访问
3、配置 XFire 框架运行所需的 Servlet
修改 web.xml 文件,在其中增加如下 Servlet 定义内容。
1、 <servlet>
2、 <servlet-name>XFireServlet</servlet-name>
3、 <display-name>XFire Servlet</display-name>
4、 <servlet-class>
5、 org.codehaus.xfire.transport.http.XFireConfigurableServlet
6、 </servlet-class>
7、 </servlet>
8、
9、 <servlet-mapping>
10、 <servlet-name>XFireServlet</servlet-name>
11、 <url-pattern>/servlet/XFireServlet/*</url-pattern>
12、 </servlet-mapping>
13、
14、 <servlet-mapping>
15、 <servlet-name>XFireServlet</servlet-name>
16、 <url-pattern>/services/*</url-pattern>
17、 </servlet-mapping>
|
4、创建 XFire 框架的服务发布文件 services.xml
- 在创建的 classes 目录下新建目录 ”META-INF\xfire”;
- 在步骤 a) 中新建的 ”xfire”文件目录下创建新文件 services.xml,文件的默认内容如
清单 1-2 WEB-INF\classes\META-INF\xfire\services.xml
1、 <beans xmlns="http://XFire.codehaus.org/config/1.0">
2、 </beans>
|
将 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 WEB-INF\classes\org\vivianj\xfire\pojo\HelloWorldService.java
1.package org.vivianj.xfire.pojo;
2.
3. /**
4. * HelloWorldService 中声明需要发布成 Web 服务的所有 Java 方法
5. * HelloWorldService 作为Web服务接口
6. */
7. public interface HelloWorldService {
8. /**
9. * sayHello 方法声明了 Web 服务对外暴露的接口
10. *
11. * @return 返回给客户端的字符串
12. */
13. public String sayHello();
14.}
|
2.创建 Web 服务实现类 ”HelloWorldServiceImpl”
创建 Web 服务实现类 ”HelloWorldServiceImpl”,它继承HelloWorldService 接口,并且为它声明的 ”sayHello”方法提供具体实现: 返回字符串”Hello World!”。 ”HelloWorldServiceImpl”类对应的 Java 文件代码如下
清单 1-4 WEB-INF\classes\org\vivianj\xfire\pojo\HelloWorldServiceImpl.java
1.package org.vivianj.xfire.pojo;
2.
3./**
4. * HelloWorldServiceImpl 中为 Web 服务接口中声明的所有 Java 方法提供具体实现
5. * HelloWorldServiceImpl 作为 Web 服务的实现类
6. */
7.public class HelloWorldServiceImpl implements HelloWorldService {
8.
9. /*
10. * sayHello 方法为 HelloWorldService 服务接口定义的 sayHello 方法提供具体实现
11. *
12. * @see org.vivianj.XFire.pojo.HelloWorldService#sayHelloToXFire()
13. */
14. public String sayHello() {
15. return "Hello World!";
16. }
17.
18.}
|
3.修改 services.xml,将 POJO 发布成 Web 服务
我们可以在 WEB-INF\classes\META-INF\XFire\services.xml 文件中的 <beans …> 和 </beans> 元素中间加入如下的 xml 内容将上面创建的 HelloWorldService 发布成 Web 服务。
1.<service>
2. <name>HelloWorldService</name>
3. <namespace>http://vivianj.org/HelloWorldService</namespace>
4. <serviceClass>
5. org.vivianj.xfire.pojo.HelloWorldService
6. </serviceClass>
7. <implementationClass>
8. org.vivianj.xfire.pojo.HelloWorldServiceImpl
9. </implementationClass>
10.</service>
|
其中各元素的功能如下:
更多 service 元素的子元素和它们的用法请参考
通过上面的三个步骤,我们已经将新创建的HelloWorldService发布成了Web服务,我们可以使用下面的步骤测试一下创建的Web服务是否能够正常运行:
- 编译上面的步骤中创建的 Java 接口和类;
- 启动 TOMCAT 服务器。
- 等 TOMCAT 服务器完全启动后,打开浏览器,在地址栏中输入 http://localhost:8080/XFire/services/HelloWorldService?wsdl。
其中 HelloWorldServcie 是配置文件中 service\name 元素所定义的内容,”wsdl”参数表示查看该 Web 服务的 WSDL(Web服务描述语言)文件。
如果浏览器中出现错误提示,请按照上面的步骤和说明检查已经完成的开发、配置过程是否完全正确。
客户端代码:
public class HelloWorldServiceClient {
public static void main(String[] args) {
Client client;
try {
client = new Client(new URL(
"http://localhost:9091/XFire/services/HelloWorldService?wsdl"));
Object[] results;
//第一个参数是方法名,后面的参数是需要传入的参数
results = client.invoke("sayHello", new Object[]{null});
System.out.println((String)results[0]);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
结束语
本文中作者首先讲解了 XFire 框架的主要特性,XFire 框架的运行环境以及基于 XFire 框架开发 SOA 应用的基本步骤,并且借助于 SOA 环境下的 ”Hello World!”例子,详细的讲解和演示了如何基于 XFire 框架、经过简单的开发、配置步骤就将一个 POJO 类中包含的方法发布成Web服务。从 ”Hello World!”例子实现的过程中,我们可以发现 XFire 框架最大化的发挥了 POJO 的作用,减少了 SOA 实施时对框架本身的依赖,降低了 SOA 实施的难度,企业实施 SOA 时并不需要增加太多的投入就可以实现目标。
分享到:
相关推荐
在本文中,我们将探讨如何在MyEclipse环境下利用Xfire框架发布Web服务,并进行客户端调用。Xfire是一个轻量级的Java Web服务框架,它简化了服务的创建和部署过程。 首先,确保你的开发环境准备就绪。安装Java ...
XFire框架是一个基于Java的Web服务实现,它在早期为开发者提供了一种高效、轻量级的方式来创建和消费Web服务。这个"xfire框架jar包合集 大全"包含了不同版本的XFire核心库,这对于我们理解XFire的功能和历史演变至关...
【实战Mule:利用Mule调用XFire发布的Web服务】这一主题主要涵盖了两个核心概念:Mule ESB(企业服务总线)和XFire,它们都是在IT领域中的重要工具,尤其在分布式系统和集成解决方案中发挥着关键作用。 Mule ESB是一...
通过理解服务的发布和调用过程,以及如何配置和使用`service.xml`文件,你可以有效地利用xFire实现跨系统间的通信。同时,提供的压缩包文件可以作为实际操作的起点,帮助你深入理解和实践Web服务的开发。
在本篇博客“XFire框架实现WebService(二)”中,我们将深入探讨如何使用XFire这一开源框架来构建和消费Web服务。...通过理解上述知识点,你可以有效地利用XFire框架,提高开发效率,同时享受到其轻量级、高效的特点。
这个整合使得开发人员能够利用Spring的强大功能来管理和配置Web服务,同时利用Xfire的便捷性来快速实现服务接口和处理逻辑。 首先,我们需要创建一个Web项目,引入必要的依赖库。这些库包括Xfire的核心库和JAXB2库...
本篇文章将深入探讨如何利用XFire在服务端和客户端之间建立Web服务通信。 一、Web服务基础 Web服务是一种基于标准的,能够跨越不同操作系统、编程语言和网络环境的通信方式。它们通常使用SOAP(Simple Object ...
本示例将详细解释如何利用xfire框架搭建一个包含SOAP Header身份验证和WS-Security身份验证的Web Service。 首先,让我们了解`xfire`。Xfire(现为Apache CXF的一部分)是一个开源的Java框架,它简化了创建和使用...
【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web...通过理解并实践本教程,开发者可以更好地掌握Web服务的发布与调用技术,以及如何利用XFire提升开发效率。
将两者集成可以方便地构建和消费Web Service,实现服务的发布和调用。下面将详细介绍如何在Java项目中整合XFire和Spring。 ### 1. 项目准备 首先,确保项目中包含了必要的jar包。XFire的集成通常需要以下几类库: ...
**Web Service XFire框架开发指南** Web Service是一种基于开放标准(如XML、WSDL和SOAP)的互联网通信协议,允许不同系统之间的应用程序进行交互。XFire是Java平台上的一个开源Web Service框架,它提供了一种简单...
2. Xfire框架:Xfire是由Codehaus组织开发的,它简化了Java应用创建SOAP Web服务的过程。Xfire提供了强大的XML绑定能力,可以将Java类直接映射为SOAP消息,同时支持Spring框架的集成,使得Web服务的部署和管理更加...
本篇文章将深入探讨如何利用XFire与Spring的组合来发布Web服务,并提供具体的实例和所需资源。 首先,XFire(现在称为Apache CXF的一部分)是一个轻量级的Web服务框架,它支持SOAP、RESTful等多种Web服务协议,并且...
通过上述步骤,我们可以清晰地看到如何利用XFire框架在服务器端发布一个简单的WebService,以及如何在客户端调用该服务。整个过程涉及项目创建、服务类编写、服务配置、以及客户端的调用,每个环节都是构建一个功能...
Xfire是一个轻量级的、基于Java的Web服务框架,它提供了一种简单而高效的方式来构建和消费Web服务。Xfire的设计目标是使开发人员能够快速地创建出高性能、可扩展的Web服务应用。与其他Web服务框架相比,Xfire具有...
在本实例中,我们将探讨如何在Eclipse集成开发环境中利用Xfire框架创建和运行Web服务,以及与SQL Server 2005数据库的交互。 1. **Xfire框架介绍** Xfire是基于Java的SOAP(简单对象访问协议)框架,支持WS-I(Web...
在Eclipse这个强大的Java集成开发环境中,利用Xfire框架创建Web服务是一个常见且实用的技能。Xfire是一款轻量级的、高效的Web服务框架,它允许开发者快速地将Java对象暴露为Web服务,并能轻松消费其他Web服务。下面...