- 浏览: 348163 次
- 来自: NA
文章分类
最新评论
-
上官车月:
实验成功,转载了
Java获取请求客户端的真实IP地址 -
url_nc:
very good
css教程–十步学会用css建站(全) -
hiveer:
楼主我想问能不能不在class里面定义get_binding ...
强大的ruby模版:ERB -
ilovebaby0530:
修改密码后需要 FLUSH PRIVILEGES;
绿色版mysql安装步骤 -
albrich:
你这个方法也是不行的,得到的仍然是内网的IP
Java获取请求客户端的真实IP地址
http://www.ibm.com/developerworks/cn/java/j-lo-xfire/index.html
Java 社区一直试图将 POJO 的作用发挥到极致,降低 Java 应用实现的难度,最近的尝试是将 EJB3.0 建立在 POJO 之上;另一方面,SOA 是目前 Java 社区炙手可热的名词,非常多的企业都在努力应用和实施 SOA;XFire 为这两方面的需求提供了一种魔术般的解决方式,我们很快能够发现使用 XFire 创建和发布 Web 服务可以直接基于 POJO,将烦人的继承关系和一大堆其他可能的约束丢在一边。
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 已经成为了目前 Java 社区中炙手可热的名词,几乎所有的软件厂商都在讨论它,为他提供解决方案和产品支持,大部分的企业也已经在企业内部实施或者正在考虑实施 SOA。
然而 SOA 在企业内的实施却不是一项简单的任务,即使抛开新建系统直接基于 SOA 架构实施的因素,要把企业已有系统纳入 SOA 框架也不是一件容易的事情。企业必须在对当前架构深入了解的基础上,对已有系统进行大规模的改造才能满足新的要求。如何经济的从原有技术架构切换到 SOA 架构成为很多企业的难题。
|
|
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 框架目前的最新版本是 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 发布时的一些有用的信息。
|
|
XFire框架是一种基于Servlet技术的SOA应用开发框架,要正常运行基于XFire应用框架开发的企业应用,除了XFire框架本身之外,还需要JDK和Servlet容器的支持。
XFire 支持非常多的特性,其中不同的特性对 JDK 版本的要求有所不同,比如如果项目中选择基于 JSR181 标准发布 Web 服务,我们就需要选择 JDK5 或者以上版本,如果仅仅选择将 Web 服务绑定到最简单的 POJO,我们只需要选择 JDK1.4 版本即可。
JDK 各版本均可以在 java.sun.com 网站上下载,如何安装 JDK 请参考 SUN 公司的相关技术文档和 JDK 的帮助文档。
XFire 是一种基于 Servlet 技术的 SOA 应用开发框架,需要 Servlet 容器的支持。XFire 支持在多种 Servlet 容器中运行,包括 Websphere、Weblogic、TOMCAT 等。为了说明的简单,我们选择使用 TOMCAT(版本5.0.30)作为 XFire 的运行容器,所有配置过程和发布步骤的说明也均是针对 TOMCAT,如果读者使用 TOMCAT 之外的其它 Servlet 容器或者选择了 TOMCAT 的其它版本,下面的配置过程和步骤可能需要做出调整,请读者根据实际 Servlet 容器的帮助文档进行相应调整。
TOMCAT 各版本均可以在 tomcat.apache.org 网站上下载,如何正确安装 TOMCAT 服务器请参考 TOMCAT 服务器的帮助文档。
XFire 需要 xalan 项目的支持,然而 1.2.6 版本中并没有带有相应的 jar 文件,因此请访问 xml.apache.org ,下载 xalan 项目的二进制包。
|
|
前面的章节中我们下载和安装了 XFire 安装包和所需要的支持环境,现在我们开始学习如何从零开始创建 XFire 应用开发环境。下面的所有配置过程和发布步骤均针对 TOMCAT(版本5.0.30)服务器,如果选择其它的 Servlet 容器,下面的配置过程和步骤可能需要做出调整,请读者根据实际 Servlet 容器的帮助文档进行相应调整。
- 在 %TOMCAT_HOME%/webapps 目录下创建新的 Web 应用目录 “XFire”
[注] 其中的 %TOMCAT_HOME% 指向 TOMCAT 的安装目录。
- 在 ”XFire”目录下创建 ”WEB-INF”目录、
- 在 ” WEB-INF”目录下创建 ”lib”目录和 ”classes”目录
- 在 ” WEB-INF”目录下创建 Web 应用描述文件 ”web.xml”, ”web.xml”文件的内容见 清单 1-1 。
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> |
拷贝 %XFIRE_HOME%/lib 目录下所有文件到 “1、创建 Web 应用目录和基本元素” 中所创建的 ”lib”目录下,将 %XFIRE_HOME%/XFire-all-1.2.6.jar 文件也拷贝到 “1、创建 Web 应用目录和基本元素” 中所创建的 ”lib”目录下。将 xalan 安装包中的所有 jar 文件和所需要的支持 jar 文件拷贝到相同的 ”lib”目录下。
[注] 为了减少拷贝的 jar 文件的数目,开发者可以根据项目的需要选择需要拷贝的 jar 文件,而不是全部拷贝,如何根据需要选择拷贝合适的类包文件请访问 XFire 站点 。
修改 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、创建 Web 应用目录和基本元素” 中创建的 classes 目录下新建目录 ”META-INF\xfire”;
- 在步骤 a) 中新建的 ”xfire”文件目录下创建新文件 services.xml,文件的默认内容如 清单1-2 。
清单 1-2
WEB-INF\classes\META-INF\xfire\services.xml
1、 <beans xmlns="http://XFire.codehaus.org/config/1.0"> 2、 </beans> |
|
|
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
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”,它继承 ”1、创建Web服务接口 ---- HelloWorldService” 中创建的 HelloWorldService 接口,并且为它声明的 ”sayHello”方法提供具体实现: 返回字符串”Hello World!”。 ”HelloWorldServiceImpl”类对应的 Java 文件代码如 清单 1-4 。
清单 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 元素的子元素和它们的用法请参考 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。
如果浏览器中出现错误提示,请按照上面的步骤和说明检查已经完成的开发、配置过程是否完全正确。
|
|
本文中作者首先讲解了 XFire 框架的主要特性,XFire 框架的运行环境以及基于 XFire 框架开发 SOA 应用的基本步骤,并且借助于 SOA 环境下的 ”Hello World!”例子,详细的讲解和演示了如何基于 XFire 框架、经过简单的开发、配置步骤就将一个 POJO 类中包含的方法发布成Web服务。从 ”Hello World!”例子实现的过程中,我们可以发现 XFire 框架最大化的发挥了 POJO 的作用,减少了 SOA 实施时对框架本身的依赖,降低了 SOA 实施的难度,企业实施 SOA 时并不需要增加太多的投入就可以实现目标。
|
|
xfire.war | 6 KB | HTTP |
关于下载方法的信息 |
学习
- 访问 XFire 框架用户指南
可以获得更多关于 XFire 的使用帮助。
- 访问 XFire 的 Eclipse 插件
可以获得关于 XFire 提供的 Eclipse
插件的更多信息。
获得产品和技术
- 访问 java.sun.com
获得
JDK 各种版本二进制安装包。
- 访问 tomcat.apache.org
获得 TOMCAT 服务器各种版本二进制安装包。
- 访问 xml.apache.org
获得 xalan 框架各种版本二进制安装包。
- 访问 XFire.codehaus.org 获得 XFire 框架的二进制安装包。
发表评论
-
Apache Solr 实现去掉重复的搜索结果
2011-11-04 20:40 2054打上SOLR-236_collapsing.patch补丁, ... -
Apache Solr schema.xml及solrconfig.xml文件中文注解
2011-11-04 20:39 1989schema.xml位于solr/conf/目录下,类似于数据 ... -
自定义评分器Similarity提高搜索体验
2011-11-04 20:35 2103http://www.gbsou.com/2011/11/01 ... -
Solr的扩展(Scaling)以及性能调优
2011-11-04 20:16 3212当你的索引数量越来 ... -
lucene下的contrib包介绍
2010-09-10 18:23 2518analyzers 下分为两个包 ... -
构建可伸缩,高性能的互联网应用(copy from http://yuquan-nana.javaeye.com/blog/710302)
2010-07-12 13:31 2004时间过得很快,来淘宝已经两个月了,在这两个月的时间里,自己也感 ... -
ImageMagick, JMagick安装、配置(windows版)
2009-09-29 21:55 5447ImageMagick, JMagick安装、配置(windo ... -
使用HttpClient4.0调用JavaEye API
2009-09-19 21:22 2509package com.javaeye.client; ... -
使用org.apache.commons.net.ftp包开发FTP客户端,实现进度汇报,实现断点续
2009-03-12 11:06 5031利用org.apache.commons.net.ftp包实现 ... -
Java的Excel报表开源工具
2008-12-24 20:25 2484http://jdkcn.com/entry/opensour ... -
Apache Commons工具集简介
2008-12-09 12:11 1965Commons BeanUtils http://jakart ... -
Apache开源项目分类列表
2008-11-03 16:41 2222分类 项目名 说明 开发语言 服务器 ... -
JDK5多线程框架java.util.concurrent
2008-10-30 17:59 3851JDK5中的一个亮点就是将Doug Lea的并发库引入到Jav ... -
Java处理图片
2008-10-05 13:08 2187图片上传到服务器后,会根据情况将图片缩小成一个图标,我们可以利 ...
相关推荐
【标题】"webService-xfire入门doc" 涉及的是Web服务技术中的XFire框架,这是一款用于构建和消费Web服务的开源Java库。XFire是早期流行的Web服务实现,它允许开发者轻松地将Java对象转换为Web服务,反之亦然。 ...
总的来说,"webService+Xfire入门"的教程适合初学者,通过它你可以快速了解Web Service的基本概念,学会使用MyEclipse创建、部署和测试Web Service,并理解XFire在Web服务开发中的作用。实践这个小例子,你将对Web ...
这篇博客文章“Web Service 之 XFire入门”将引导我们逐步了解如何使用XFire构建Web服务。 首先,XFire基于Java语言,利用了Java API for XML Processing (JAXP) 和Java Architecture for XML Binding (JAXB) 这些...
**Xfire入门实例操作详解** Xfire是一款曾经非常流行的在线游戏社区软件,它允许玩家在游戏中与朋友聊天、查看他们的状态、记录游戏统计等。虽然现在可能不再是最主流的游戏社交工具,但对于想要了解游戏社区历史...
XFire 入门 web service.wpsXFire 入门 web service.wpsXFire 入门 web service.wps
**二、XFire入门步骤** 1. **环境准备**:确保安装了Java Development Kit (JDK) 和 Maven,因为XFire的构建和运行依赖这两个工具。 2. **创建服务**:使用Java接口和实现定义服务契约。例如,可以创建一个名为`...
XFire完整入门教程XFire完整入门教程XFire完整入门教程XFire完整入门教程
**XFire入门步骤** 1. **安装与配置**:首先,我们需要下载并安装XFire的库文件,将其添加到项目的类路径中。此外,可能还需要配置Maven或Gradle依赖以引入XFire的相关模块。 2. **创建服务接口**:定义一个短信...
描述:“Xfire入门资料,帮你步入Web服务” 知识点解析: **Xfire概述** Xfire是一个开源的轻量级Java Web服务框架,由Codehaus组织维护。它提供了一种简单有效的方式来创建和使用Web服务,特别适合于小型项目或对...
**XFire 入门教程** XFire 是一个 Java Web Service 框架,它简化了创建、部署和消费 Web 服务的过程。以下是一份详细的 XFire 入门指南,包括如何发布服务端、解决可能出现的问题以及客户端的调用。 ### 1. 开发...
XFire--Webservice入门xfire
《Xfire入门示例解析》 Xfire是一款曾经流行的在线游戏通信软件,它允许玩家在游戏中进行即时通讯、查看好友状态以及记录游戏统计等。在"xfire_demo.zip_DEMO"这个压缩包中,我们得到了一个关于如何使用Xfire进行...
Java XFire入门** 安装XFire后,首先需要在项目中添加相应的依赖库。然后,你可以使用XFire的API或注解来创建服务提供者和服务消费者。服务提供者是指暴露服务的代码,而服务消费者则是调用这些服务的客户端。 **3...
1. **XFire入门**:了解XFire的基本架构和安装步骤,以及如何配置XFire环境以准备开发工作。 2. **服务创建**:学习如何使用XFire创建和发布SOAP服务,包括定义服务接口、实现服务逻辑以及将服务绑定到URL。 3. **...
【xFire开发入门教程】 在IT行业中,开发Web服务是一项重要的任务,而xFire作为一款开源的Java SOAP框架,为开发者提供了高效的工具和支持。本文主要针对xFire开发进行入门指导,利用MyEclipse这款强大的集成开发...
### 关于Spring XFire入门详解 #### 一、引言 在探讨Spring XFire入门时,我们首先要了解XFire的基本概念及其与Spring框架的结合方式。XFire是一个高性能且易于使用的开源SOAP容器,用于实现Java Web服务。它支持...
Xfire(现更名为CXF)是Java平台上一个流行的开源框架,用于构建和部署Web服务。作为一个初学者,理解如何使用Xfire来实现Web服务是非常基础且重要的一步。下面将详细介绍Xfire实现Web服务的基础知识。 首先,我们...
我整理了一下使用XFire1.2.6进行Web Service开发的思路,尝试完成了一个入门实例(完整的MyEclipse项目)。如果你正在学习Web Service或者对这个有兴趣,你可以下载该附件,导入MyEclipse中运行以查看示例效果。希望...
这是一份关于开发xfire 很好的PPT教程