`
jyangzi5
  • 浏览: 212299 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

利用XFire 框架发布web服务

阅读更多

 

1、创建 Web 应用目录和基本元素

  1. 在 %TOMCAT_HOME%/webapps 目录下创建新的 Web 应用目录 “XFire”

    [注] 其中的 %TOMCAT_HOME% 指向 TOMCAT 的安装目录。

  2. 在 ”XFire”目录下创建 ”WEB-INF”目录、
  3. 在 ” WEB-INF”目录下创建 ”lib”目录和 ”classes”目录
  4. 在 ” 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

  1. 在创建的 classes 目录下新建目录 ”META-INF\xfire”;
  2. 在步骤 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 服务的基本步骤如下:

  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 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

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

  • name

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

  • namespace

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

  • serviceClass

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

  • implemetationClass

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

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

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

  1. 编译上面的步骤中创建的 Java 接口和类;
  2. 启动 TOMCAT 服务器。
  3. 等 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服务发布的注意事项

    在本文中,我们将探讨如何在MyEclipse环境下利用Xfire框架发布Web服务,并进行客户端调用。Xfire是一个轻量级的Java Web服务框架,它简化了服务的创建和部署过程。 首先,确保你的开发环境准备就绪。安装Java ...

    xfire框架jar包合集 大全

    XFire框架是一个基于Java的Web服务实现,它在早期为开发者提供了一种高效、轻量级的方式来创建和消费Web服务。这个"xfire框架jar包合集 大全"包含了不同版本的XFire核心库,这对于我们理解XFire的功能和历史演变至关...

    实战Mule:利用Mule调用XFire发布的Web服务

    【实战Mule:利用Mule调用XFire发布的Web服务】这一主题主要涵盖了两个核心概念:Mule ESB(企业服务总线)和XFire,它们都是在IT领域中的重要工具,尤其在分布式系统和集成解决方案中发挥着关键作用。 Mule ESB是一...

    xFire发布Web Service,并调用远程服务

    通过理解服务的发布和调用过程,以及如何配置和使用`service.xml`文件,你可以有效地利用xFire实现跨系统间的通信。同时,提供的压缩包文件可以作为实际操作的起点,帮助你深入理解和实践Web服务的开发。

    XFire框架实现WebService(二)

    在本篇博客“XFire框架实现WebService(二)”中,我们将深入探讨如何使用XFire这一开源框架来构建和消费Web服务。...通过理解上述知识点,你可以有效地利用XFire框架,提高开发效率,同时享受到其轻量级、高效的特点。

    xfire整合spring发布web services

    这个整合使得开发人员能够利用Spring的强大功能来管理和配置Web服务,同时利用Xfire的便捷性来快速实现服务接口和处理逻辑。 首先,我们需要创建一个Web项目,引入必要的依赖库。这些库包括Xfire的核心库和JAXB2库...

    java利用 xfire实现 webservices 服务端与客户端

    本篇文章将深入探讨如何利用XFire在服务端和客户端之间建立Web服务通信。 一、Web服务基础 Web服务是一种基于标准的,能够跨越不同操作系统、编程语言和网络环境的通信方式。它们通常使用SOAP(Simple Object ...

    使用xfire框架搭建webService的一个demo

    本示例将详细解释如何利用xfire框架搭建一个包含SOAP Header身份验证和WS-Security身份验证的Web Service。 首先,让我们了解`xfire`。Xfire(现为Apache CXF的一部分)是一个开源的Java框架,它简化了创建和使用...

    使用XFire发布WebService

    【标题】: 使用XFire发布WebService 在Web服务的世界中,XFire是一个强大的开源框架,它使得开发和部署Web...通过理解并实践本教程,开发者可以更好地掌握Web服务的发布与调用技术,以及如何利用XFire提升开发效率。

    整理xfire和spring的集成 web service 面向服务编程 java

    将两者集成可以方便地构建和消费Web Service,实现服务的发布和调用。下面将详细介绍如何在Java项目中整合XFire和Spring。 ### 1. 项目准备 首先,确保项目中包含了必要的jar包。XFire的集成通常需要以下几类库: ...

    Web Service XFire框架开发指南

    **Web Service XFire框架开发指南** Web Service是一种基于开放标准(如XML、WSDL和SOAP)的互联网通信协议,允许不同系统之间的应用程序进行交互。XFire是Java平台上的一个开源Web Service框架,它提供了一种简单...

    基于xfire技术框架的WebService完整源码及数据库备份

    2. Xfire框架:Xfire是由Codehaus组织开发的,它简化了Java应用创建SOAP Web服务的过程。Xfire提供了强大的XML绑定能力,可以将Java类直接映射为SOAP消息,同时支持Spring框架的集成,使得Web服务的部署和管理更加...

    XFire与Spring组合发布webservices

    本篇文章将深入探讨如何利用XFire与Spring的组合来发布Web服务,并提供具体的实例和所需资源。 首先,XFire(现在称为Apache CXF的一部分)是一个轻量级的Web服务框架,它支持SOAP、RESTful等多种Web服务协议,并且...

    xfire发布webservice

    通过上述步骤,我们可以清晰地看到如何利用XFire框架在服务器端发布一个简单的WebService,以及如何在客户端调用该服务。整个过程涉及项目创建、服务类编写、服务配置、以及客户端的调用,每个环节都是构建一个功能...

    Xfire实战[Web服务开发之旅]

    Xfire是一个轻量级的、基于Java的Web服务框架,它提供了一种简单而高效的方式来构建和消费Web服务。Xfire的设计目标是使开发人员能够快速地创建出高性能、可扩展的Web服务应用。与其他Web服务框架相比,Xfire具有...

    JAVAEE利用XFIRE创建WEBSERVICE实例

    在本实例中,我们将探讨如何在Eclipse集成开发环境中利用Xfire框架创建和运行Web服务,以及与SQL Server 2005数据库的交互。 1. **Xfire框架介绍** Xfire是基于Java的SOAP(简单对象访问协议)框架,支持WS-I(Web...

    在Eclipse下用xfire创建webserver服务器demo

    在Eclipse这个强大的Java集成开发环境中,利用Xfire框架创建Web服务是一个常见且实用的技能。Xfire是一款轻量级的、高效的Web服务框架,它允许开发者快速地将Java对象暴露为Web服务,并能轻松消费其他Web服务。下面...

Global site tag (gtag.js) - Google Analytics