`

xfire初体验,webServices服务器配置

阅读更多

 

POJO、SOA 概述

POJO(Plain Old Java Object,简单 Java 对象)是 Java 社区中最早的成员(回想您学习 Java 时第一个兴奋的时刻,那个简单的 "Hello World!" 例子),也是最简单、最容易实现的方式。

然而现实中 Java 的发展已经远远超越了 POJO 的范围,成为面向对象技术应用中最成功的编程语言,尤其是继承、多态的应用为我们造就了一大批开发框架(如 Struts)和标准(如 EJB),随之而来的就是实现的复杂化,我们必须面对一大堆继承关系的限制。比如说:要开发一个基于 Struts 的应用,我们必须了解 Struts 特定的继承关系如 ActionForm、ValidateActionForm;要开发一个 EJB 应用,我们必须继承 EJBObject、SessionEJB 等。

为了抛开这些限制,降低 Java 应用实现的难度,Java 社区开始重新审视 POJO 的价值,试图将 POJO 的作用发挥到极致,最新的努力是 EJB3.0。Java 社区将 EJB3.0 设计为基于 POJO,而不是为他准备更多的继承关系等限制。

让人爱恨交加的 SOA

SOA 已经成为了目前 Java 社区中炙手可热的名词,几乎所有的软件厂商都在讨论它,为他提供解决方案和产品支持,大部分的企业也已经在企业内部实施或者正在考虑实施 SOA。

然而 SOA 在企业内的实施却不是一项简单的任务,即使抛开新建系统直接基于 SOA 架构实施的因素,要把企业已有系统纳入 SOA 框架也不是一件容易的事情。企业必须在对当前架构深入了解的基础上,对已有系统进行大规模的改造才能满足新的要求。如何经济的从原有技术架构切换到 SOA 架构成为很多企业的难题。

XFire 概述

XFire 是 codeHaus 组织提供的一个开源框架,它构建了 POJO 和 SOA 之间的桥梁,主要特性就是支持将 POJO 通过非常简单的方式发布成 Web 服务,这种处理方式不仅充分发挥了 POJO 的作用,简化了 Java 应用转化为 Web 服务的步骤和过程,也直接降低了 SOA 的实现难度,为企业转向 SOA 架构提供了一种简单可行的方式。

XFire 目前最新的版本是 1.2.2,目前支持的特性主要包括:

  • 支持将 Web 服务绑定到 POJO、XMLBeans、JAXB1.1、JAXB2.0 和 Castor;
  • 支持基于 HTTP、JMS、XMPP 等多种协议访问 Web 服务;
  • 支持多种 Web 服务业界重要标准如 SOAP、WSDL、Web 服务寻址(WS-Addressing)、Web 服务安全(WS-Security)等;
  • 支持 JSR181,可以通过 JDK5 配置 Web 服务;
  • 高性能的 SOAP 实现;
  • 服务器端、客户端代码辅助生成;
  • 对 Spring、Pico、Plexus 等项目的支持等。

XFire 安装包

XFire 框架目前的最新版本是 1.2.6,可以访问 xfire.codehaus.org 下载 XFire 框架的安装包,下载时请选择“全部二进制发布包(Binary Distribution in zip package)”,而不仅仅是“XFire jar 文件(Jar of all XFire modules)”。

下载完成后,我们可以将下载的 .zip 文件解压缩到任意的文件夹中(后面的章节中使用 % XFIRE_HOME % 表示 XFire 框架的安装目录),解压缩后形成的文件目录结构如下:

  • api(目录)

    api 目录中是 XFire 框架中所有类(class)对应的 API 文档,为开发者使用 XFire 完成应用开发提供帮助。

  • examples(目录)

    examples 目录中包含了所有随 XFire 二进制包发布的实例,包括这些实例的源代码和相关 Web 应用配置内容。

  • lib(目录)

    lib 目录中包含 XFire 运行所需要的外部支持类包(.jar文件),可以根据不同项目所需的 XFire 特性选择所需要的支持类包。保守的方法是在 Web 项目中包含所有的外部支持类包(.jar文件)。

  • manual(目录)

    manual 目录中包含有 XFire 框架的帮助文档,开发者可以从这些帮助文档中学习更多运用 XFire 框架实现 SOA 的知识和技巧。

  • modules(目录)

    modules 目录中包含了 XFire 框架根据不同特性分别编译的二进制包文件。发布基于 XFire 框架的 Web 项目时,可以选择使用该目录下的所有 .jar 文件,也可以选择 XFire-all-1.2.6.jar 文件。

  • XFire-all-1.2.6.jar

    XFire 框架的二进制包文件,包含了全部的模块(modules)。

  • LICENSE.txt

    LICENSE.txt 文件中包含了 XFire 框架的授权协议。

  • NOTICE.txt
  • README.txt

    这两个文件中包含了 XFire 发布时的一些有用的信息。

 

将 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!”例子来具体说明如何实现这三个步骤。

     首先,把xfire-1.2.6/lib目录下的所有包以及xfire-all-1.2.6.jar包导入工程

1、创建对外服务接口和实现类

package com.yt.manager.core;

/**
 * @Description:  webServices对外提供的接口
 * @ClassName: IUserInfo
 * @Project: myWebService
 * @Author: zxf
 * @Date: 2011-6-17
 */
public interface IUserInfo {

	public String getUserInfoById(String userId);
}
package com.yt.manager.core.impl;

import com.yt.manager.core.IUserInfo;

/**
 * @Description:提供接口的实现类
 * @ClassName: UserInfoImpl
 * @Project: myWebService
 * @Author: zxf
 * @Date: 2011-6-17
 */
public class UserInfoImpl implements IUserInfo {

	public String getUserInfoById(String userId) {
		return "hello_" + userId;
	}

}
 

2、配置 XFire 框架运行所需的 Servlet。 修改 web.xml 文件,在其中增加如下 Servlet 定义内容。

<servlet>
	<servlet-name>XFireServlet</servlet-name>
	<servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>
	<load-on-startup>0</load-on-startup>
</servlet>
<servlet-mapping>
	<servlet-name>XFireServlet</servlet-name>
	<url-pattern>/services/*</url-pattern>
</servlet-mapping>

xfire配置文件在普通webProject目录中的位置

  services.xml在webProject的位置

xfire配置文件在maven目录中的位置

3、创建 XFire 框架的服务发布文件 services.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans>
	<service xmlns="http://xfire.codehaus.org/config/1.0">
		<name>UserInfo</name>
		<namespace>www.100data.com/UserInfo</namespace><!-- 网站域名+上面节点name -->
		<serviceClass>com.yt.manager.core.IUserInfo</serviceClass>
		<implementationClass>com.yt.manager.core.impl.UserInfoImpl</implementationClass>
	</service>
</beans>
<!-- 此文件放在src/META-INF/xfire/services.xml,编译时会自动编译到classes的相应目录下面 -->
 

等 TOMCAT 服务器完全启动后,打开浏览器,在地址栏中输入http://localhost/services/UserInfo?wsdl

 

 

http://www.ibm.com/developerworks/cn/java/j-lo-xfire/

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    Webservices XFire框架的搭建与使用

    Web服务在IT行业中扮演着重要的角色,允许不同的应用程序之间通过网络进行通信和数据交换。XFire是一个古老的但功能强大的Java Web...通过以上步骤,你可以快速搭建并使用XFire框架,体验其在Web服务开发中的便捷性。

    Xfire的client.zip_Xfire客户端代码_webservice

    2. **配置文件**:客户端代码可能包含XML配置文件,用于存储Web服务的URL、认证信息、端口等参数,便于配置和管理。 3. **HTTP/HTTPS通信模块**:由于Web服务通常基于HTTP或HTTPS协议,因此客户端代码需要有相应的...

    XFIRE短信接口

    随后,在WEB-INF目录下创建web.xml配置文件,用于设置XFIRE Servlet的监听路径。以下是一个基本的web.xml示例: ```xml &lt;web-app version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi=...

    第十五章.开发XFire.Web.Service应用.rar

    5. **生成WSDL**:XFire会自动生成WSDL(Web Services Description Language)文件,它是Web服务的元数据,描述了服务的接口、操作和绑定。 6. **测试服务**:你可以使用MyEclipse的内置Web服务测试工具或者通过...

    Flex调用WebService例子(Flex工程+ XFire WebService工程)

    1. **创建WebService代理**:在Flex工程中,使用wsdl2as3工具或者直接在.mxml文件中配置WebService组件,指定WebService的WSDL(Web Services Description Language)地址。这将自动生成与服务方法对应的...

    Java的webservice开发与测试入门例子

    它们通常基于SOAP(Simple Object Access Protocol)协议,使用WSDL(Web Services Description Language)进行描述,并通过UDDI(Universal Description, Discovery, and Integration)服务进行发布和查找。...

    WebService例子.zip

    7. **实例源代码**: 压缩包中的"WebService例子"很可能包含服务器端的服务实现类、客户端的调用代码以及相关的配置文件。这些代码可以帮助初学者理解WebService的整个生命周期,从服务创建、部署到客户端调用的全...

    java webservice

    - 考虑到Axis2和XFire都支持POJO风格的WebServices,它们在这一方面具有相似性。 - 由于XFire和Axis2都得到了Apache的支持,因此在社区和资源方面都非常丰富。 #### 四、Axis2与CXF的比较 文档中还提到了Axis2与...

    Apache cxf 学习笔记.pdf

    CXF这个名字来源于两个曾经流行的Java Web服务项目的合并:Celtix和XFire,CXF意在强调其对WS-*标准的支持以及XML和Web服务的融合。 **1. CXF 概述** Apache CXF允许开发者通过多种方式创建和消费Web服务,包括...

    JAVA面试题(中).pdf

    Servlet与CGI是两种常见的Web服务器端编程技术。Servlet是基于Java的服务器端组件技术,用于扩展服务器的功能,处理客户端的请求并返回响应。与CGI(Common Gateway Interface,通用网关接口)相比,Servlet采用多...

    CXF介绍

    CXF这个名字来源于“CXF = XFire + Celtix”,它是由两个知名的Web服务框架XFire和Celtix合并而成。CXF不仅支持SOAP、RESTful API,还支持多种Web服务标准,如WS-*规范,为开发者提供了丰富的功能和灵活性。 CXF的...

    apache cxf 2.4.2

    1. **Web服务实现**:CXF支持基于JAX-WS(Java API for XML Web Services)的标准来创建SOAP Web服务,同时也支持JAX-RS(Java API for RESTful Web Services)来构建RESTful服务。这使得开发者可以选择适合项目的...

    java cxf webService

    这些配置可以包含服务器端设置,如监听端口,日志配置,安全设置等。 6. **数据绑定**:CXF支持多种数据绑定机制,如JAXB(Java Architecture for XML Binding)用于将Java对象与XML结构之间进行转换。在服务方法的...

    apache-cxf-2.4.10

    1. **丰富的API支持**:CXF提供了JAX-WS(Java API for XML Web Services)和JAX-RS(Java API for RESTful Web Services)的实现,使得开发者可以选择使用SOAP或者RESTful风格来构建服务。 2. **多种绑定机制**:...

Global site tag (gtag.js) - Google Analytics