Web Service实践之——开始XFire
图文并茂XFire开发Webservices文挡
一、新建一个Web service 工程,如果原来有Web工程,则重构:二、三、四、五、web.xml 中配置:(自动)六、新建一个service 类一. 创建Web Service工程在MyEclipse 5.0中引入了一个新的工程类型即Web Service工程,该工程扩展了MyEclipse Web Project来支持额外的Web Service配置,开发和部署.本部分将使用Web Services Project wizard来创建和配置一个新的Web Service Projects Web Service Wizard将完成下列的动作:创建MyEclipse J2EE Web Project在工程中的web.xml文件中配置XFire Servlet创建XFire services.xml配置文件在工程中的构建路径中添加MyEclipse-XFire类库添加一个指定的MyEclipse web project builder到.projects文件,以便部署services.xml文件到它合适的位置.如: <webroot>/WEB-INF/classes/META-INF/xfire/运行Web Service Project Wizard该向导包括三个页面, Page-1搜集Web Project配置细节, Page-2搜集XFire配置细节, Page-3在新建的构建路径中配置XFire类库1. 执行Web Services Project Wizard.1). 选择File>New>Other2). 扩展MyEclipse种类按照J2EE工程的种类3). 选择Web Services Project然后点击Next,如图所示Figure-1: New Project Wizard Launcher2. 添加Project Name,点击NextFigure-2: Page-2, Collecting web configuration details3.在向导的Page-2中添加XFire servlet和service.xml文件的配置信息,按照默认的值即可.Figure-3: XFire servlet and services.xml configuration4.在向导的Page-3中选择类库添加到工程的构建路径中,其中XFire Core Library是需要的,如果要在工程中开发一个客户端应用, XFire HTTP Client Libraries也是需要的.Figure-4: Selecting XFire libraries to add to new web service project buildpath5选择Finish完成Web Service工程的创建过程Figure-5,显示了新创建的HelloWorld Web Service工程的组织结构,Web Service 工程和一个标准的MyEclipse Web工程很相似. XFire Web Service配置元素如图红色区域显示:Figure-5: Web services artifacts of a new web service project二. 创建Web Service-Code-first Strategy在这部分将用MyEclipse Web Service Wizard并通过使用Code-first Strategy来创建一个HelloWorldService示例.1. 执行MyEclipse Web Service Wizard,有两种方法来执行MyEclipse Web Service Wizard方法1.从MyEclipse perspective toolbar中来执行向导在打开的Web Service Wizard上的workbench上来选择新Web Service按钮方法2.从workbench menubar执行向导1. 从workbench menubar选择: File>New>Other>MyEclipse>Web ServiceFigure-6: Launching Web Service Wizard2. 在Page-1选择HelloWorld 工程并选择Create web service from Java bean3. 选择Next到Page-2Figure-7: Page-1 of new web service wizard4. 填写Web Service的名字HelloWorldService5. 选择Java Source folder或者选择New按钮来新建一个source folder6. 填写Java package或者通过选择Browse按钮来选择一个已经存在的package.也可以选择New按钮来新建一个Java package注意:对Service接口和Service执行的类的默认值是基于所填入Web Service名字来产生的.7. 选择Next来初始化Web Service的创建过程Figure-8: Page-2 of new web service wizard.该向导产生了IHelloWorldService Java接口和HelloWorldServiceImpl Java类.并且在services.xml配置文件中创建了一个<service>实体(如图所示),注意到example(String message)方法在接口类中产生,当Web Service部署后作为一个测试操作.Figure-9: Newly created HelloWorld interface and implementation classWeb Service 服务端服务接口代码:package org.stephencat.ws;//Generated by MyEclipsepublic interface IHelloWorldService {public String example(String message);}Web Service 服务端服务实现代码:package org.stephencat.ws;//Generated by MyEclipsepublic class HelloWorldServiceImpl implements IHelloWorldService {public String example(String message) {return message + " This is Xfire !!";}}三. 部署Web Service ProjectWeb Service可以部署在任何MyEclipse支持的J2EE应用服务器上,该部分将演示如何在Tomcat 5 Web容器上部署HelloWorld工程.3.1部署HelloWorld Web Service ProjectFigure-10显示了如何部署HelloWorld应用.1. 从Server Manager中选择Deployer按钮(step-1)2. 在Server Deployments对话框中选择Add to create a new deployment (step-2)3. 在New Deployment对话框中选择HelloWorld工程并选择Exploded Archive选项4. 在New Deployment对话框选择Finish来将HelloWorld在Tomcat 5默认的位置中打包为WAR5. 选择OK完成部署Figure-10: Three-step deployment process新HelloWorld WAR部署将出现在Server Manager视图中Tomcat 5节点下.Figure-11: Servers Manager View depicting deployed HelloWorld web service project四. 启动Tomcat服务器(或JBoss 服务器)五. 使用Web Service Explorer测试Web ServiceMyEclipse提供了一个Web Service Explorer来测试Web Service.1. 在MyEclipse perspective中选择toolbar button来执行Web Service ExplorerFigure-15: Web Services Explorer launch button on workbench toolbar2. 选择WSDL模式(Figure-16)3. 在活动面板中键入HelloWorldService WSDL文档的URLhttp://localhost:8080/HelloWorld/services/HelloWorldService?WSDLWeb Service Explorer将下载自动产生的WSDL文档,该WSDL文档由XFire framework,并产生一系列的操作能够调用service.4. 在活动面板中选择example操作并在in0域中键入HelloWorld5. 选择Go按钮来调用在HelloWorldService上的example操作,,结果出现在Status面板上Figure-16: Web Services Explorer testing HelloWorldService六. 创建Java Test客户端XFire提供了一个动态的代理框架,能够读取WSDL文档和创建潜在的消息服务使Java类来执行在Web Service的行为.该部分将为HelloWorld Web Service写一个Java Web Service客户端6.1增加XFire类库配置为了使example client能够在HelloWorld工程中运行,需要增加XFire HTTP Client类库到工程的构建路径中.1. 在Package Explore视图中右击HelloWorld工程选择Build Path>Add Library2. 选择MyEclipse Libraries3. 选择XFire HTTP Client LibrariesFigure-17: Choosing the XFire HTTP Client Libraries 4. 选择Finish6.2创建HelloWorldClient类执行Java类向导来创建HelloWorldClient类Figure-18: HelloWorldClient defined in New Java Class Wizard.Web Service 客户端代码如下:package org.stephencat.ws;import org.codehaus.xfire.*;import org.codehaus.xfire.service.*;import org.codehaus.xfire.service.binding.*;import org.codehaus.xfire.client.*;import .*;public class HelloWorldClient {/*** @param args*/public static void main(String[] args) {Service srvcModel = newObjectServiceFactory().create(IHelloWorldService.class);XFireProxyFactory factory =new XFireProxyFactory(XFireFactory.newInstance().getXFire());String url ="http://localhost:8080/HelloWorld/services/HelloWorldService";try {IHelloWorldService srvc = (IHelloWorldService)factory.create(srvcMode l, url);String result = srvc.example("hello world");System.out.print(result);} catch (MalformedURLException e){e.printStackTrace();}}}【客户端】【经验:】服务的接口的参数不可以是实体类的对象:比如:Book book以及其他的数组,但Map对象可以,所以我们就用键值对(Map)来作参数,在性能以及网速上都可以得到很大的提高~~~~。
XFire开发webservice服务和客户端全攻略
使用XFire开发webservice服务和客户端全攻略收藏XFire 是与Axis 2并列的新一代Web Service框架,通过提供简单的API支持Web Service 各项标准协议,帮助你方便快速地开发Web Service应用。
相对于Axis来说,目前XFire相对受欢迎,加上其提供了和Spring集成的支持,在目前的Web Service开源社区拥有众多的追随者。
并且因为XFire为Spring提供的支持,使得我们可以很容易在Spring中使用XFire构建Web Service应用。
XFire 与Axis2相比具有如下特征:l 支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security 等;l 使用Stax解释XML,性能有了质的提高。
XFire采用Woodstox 作Stax实现;l 容易上手,可以方便快速地从pojo发布服务;l 支持Spring、Pico、Plexus、Loom等容器;l 灵活的Binding机制,包括默认的Aegis,xmlbeans,jaxb2,castor;l 高性能的SOAP 栈设计;l 支持Spring、Pico、Plexus、Loom等容器。
XFire 与Axis1性能的比较如下:l XFire 比Axis1.3快2-6倍;l XFire 的响应时间是Axis1.3的1/2到1/5。
XFire 在WebService框架中开始较晚,它从现有的框架中借鉴了许多优秀的理念,力争将Web Service的应用开发难度降到最低。
此外,还提供了各种绑定技术、支持多种传输协议,对WebService体系中许多新的规范提供了支持。
下面让我们来看一个XFire于Spring集成的helloWorld的简单例子。
一.实现的功能和特点本例具有如下功能和特点:1)基于J2EE平台的Web Service服务;2)开发方便,配置简单;3)与spring无缝集成。
Web+Services发布与调用(axis,xfire)
目录一使用Axis和XFire发布Web Service (2)1.1 准备工作 (2)1.1.1 新建工程 (2)1.1.2 axis依赖文件 (3)1.1.3 XFire依赖文件 (3)1.2 Axis发布Web Service (4)1.2.1 传递简单数据类型的Web Service (4)1.2.2 带自定义对象传递的Web Service (8)1.3 XFire发布Web Services (10)1.3.1 传递简单数据类型的Web Service (10)1.3.2传递复杂数据类型的Web Service (12)附录: 1Server的结构 (16)二调用Web Services (17)2.1 准备工作 (17)2.1.1 新建工程 (17)2.1.2 启动Tomcat上发布的1Server服务 (17)2.2 Axis发布的Web Service调用方式 (18)2.2.1 Dynamic Invocation Interface (DII)方式 (18)2.2.2 Dynamic Proxy方式 (19)2.2.3 Stubs方式 (20)2.3调用XFire发布的Web Service (22)2.3.1服务以jar包形式发布的时候直接调用 (23)2.3.2 使用Axis的Client包 (23)2.3.3 使用Xfire的Client包 (24)附录2:2Client目录结构 (31)一使用Axis和XFire发布Web Service 1.1 准备工作Axis主页:/Axis下载:/dist/ws/XFire主页:/XFire下载:/Download去以上站点下载axis最新包和XFire最新包,包内有axis和XFire依赖的其他jar包。
1.1.1 新建工程1.1.2 axis依赖文件1.1.3 XFire依赖文件1.2 Axis发布Web Service1.2.1 传递简单数据类型的Web Service1.把Axis依赖的jar包放入lib文件夹下.2.在web.xml中加入如下:<!-- ****************** axis ws start ****************** --> <listener><listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener </listener-class></listener><servlet><servlet-name>AxisServlet</servlet-name><servlet-class>org.apache.axis.transport.http.AxisServlet</servlet-class></servlet><servlet><servlet-name>AdminServlet</servlet-name><servlet-class>org.apache.axis.transport.http.AdminServlet</servlet-class><load-on-startup>100</load-on-startup></servlet><servlet><servlet-name>SOAPMonitorService</servlet-name><servlet-class>org.apache.axis.monitor.SOAPMonitorService</servlet-class><init-param><param-name>SOAPMonitorPort</param-name><param-value>5001</param-value></init-param><load-on-startup>100</load-on-startup></servlet><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/servlet/AxisServlet</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>*.jws</url-pattern></servlet-mapping><servlet-mapping><servlet-name>AxisServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>SOAPMonitorService</servlet-name><url-pattern>/SOAPMonitor</url-pattern></servlet-mapping><!-- uncomment this if you want the admin servlet --><!--<servlet-mapping><servlet-name>AdminServlet</servlet-name><url-pattern>/servlet/AdminServlet</url-pattern></servlet-mapping>--><session-config><!-- Default to 5 minute session timeouts --><session-timeout>5</session-timeout></session-config><!-- currently the W3C havent settled on a media type for WSDL;/TR/2003/WD-wsdl12-20030303/#ietf-draftfor now we go with the basic 'it's XML' response -->3.发布到Tomcat5.0+ 启动Tomcat服务启动的时候若出现下面错误。
webservice(Xfire的使用)
WebService1、WebService有什么用,使用它有什么好处及它的原理是怎样的Web Service主要为了使原来各个孤立的站点之间的信息能够相互通信、共享而提出的一种接口。
Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP(简单对象访问协议simple object access protocal)、WSDL等,所以Web Service可以在任何支持这些标准的环境(Windows,Linux)中使用。
注:SOAP协议(Simple Object Access Protocal,简单对象访问协议),它是一个基于XML的通讯协议用于分散和分布式环境下网络信息交换。
在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通讯。
它的设计目标就是简单性和扩展性,这有助于大量异构程序和平台之间的互操作性,从而使存在的应用程序能够被广泛的用户访问。
2、Webservice移植性是不同系统(不同语言开发的系统、相同语言但属于不同应用开发的系统)之间互操作的平台,他提供一种标准,不同平台和不同语言之间进行互操作(异构系统之间互连互通)的标准它与语言和平台无关(无关性),有的时候无关性比性能更重要,意味着更通用也可以认为webservice就是一种应用程序,不同的系统通过它可以是实现互操作如果其它系统要访问发布在web服务器上java Web系统中某个类中的方法,这个时候只需要给该类封装成一个WebService Api接口3、如果一个webservice创建好了之后就可以访问了通过Soap(simple object access protocol)协议,实际使用了xml来描述和封装request和response,使得他们(request和response)可以通过soap协议进行传递.soap协议中提供了标准的远程过程调用RPC(方法)来访问webservice,rpc使用xml和xsd(xml schema Definition是DTD的替代品)来描述被请求的方法以及该方法的参数情况和返回情况{ 即用xml和xsd来描述和封装request和response,使得他们(request和response)可以通过soap协议进行传递}4、为什么其它系统都可以访问webservicewebservice使用xml和xsd来描述内部一些配置,xml和xsd是webservice基本数据格式wsdl(webservice description language),它使用的全是xml和xsd。
Web Services教程
Web Services 教程Web Services 可以将应用程序转换为网络应用程序。
通过使用 Web Services,您的应用程序可以向全世界发布信息,或提供某项功能。
Web Services 可以被其他应用程序使用。
通过 Web Services,您的会计部门的 Win 2k 服务器可以与 IT 供应商的 UNIX 服务器相连 接。
基本的 Web Services 平台是 XML+HTTP。
Web services 使用 XML 来编解码数据,并使用 SOAP 来传输数据。
学习如何经由 应用程序创建 Web Services。
在本教程中,我们把一个 程序转换为了 Web Services。
Web Services 可使您的应用程序成为 Web 应用程序。
Web Services 通过 Web 进行发布、查找和使用。
您应当具备的基础知识 在继续学习之前,您需要对下面的知识有基本的了解:•HTML •XML 如果您希望首先学习这些项目,请在我们的首页访问这些教程。
什么是 Web Services? •Web Services 是应用程序组件 •Web Services 使用开放协议进行通信 •Web Services 是独立的(self-contained)并可自我描述 •Web Services 可通过使用 UDDI 来发现 •Web Services 可被其他应用程序使用 •XML 是 Web Services 的基础 它如何工作? 基础的 Web Services 平台是 XML + HTTP。
HTTP 协议是最常用的因特网协议。
XML 提供了一种可用于不同的平台和编程语言之间的语言。
Web services 平台的元素: •SOAP (简易对象访问协议) •UDDI (通用描述、发现及整合) •WSDL (Web services 描述语言) 我们会在本教程后面章节讲解这些主题。
webservice使用教程
AXIS VS CXF
在SOA领域,我们认为Web Service是SOA体系的构建单元(building block)。对于作过WebService的开发人员来说,AXIS和CXF一定都不会陌生。这两个产品都是Apache孵化器下面的Web Service开源开发工具。 Axis2的最新版本是1.3,CXF现在已经到了2.0版本。
比较这两个框架的Web Service开发方法与比较它们的特性同样重要。 从开发者的角度,两个框架的特性相当的不同。 Axis2的开发方式类似一个小型的应用服务器,Axis2的开发包要以WAR的形式部署到Servlet容器中,比如Tomcat,通过这些容器可以对工作中的Web Service进行很好的监控和管理。Axis2 的Web administrion模块可以让我们动态的配置Axis2.一个新的服务可以上载,激活,使之失效,修改web服务的参数。管理UI也可以管理一个或者多个处于运行状态的服务。这种界面化管理方式的一个弊端是所有在运行时修改的参数没有办法保存,因为在重启动之后,你所做的修改就会全部失效。
22. </servlet-mapping>
23.
24.</web-app>
<?xml version="1.0" encoding="GB2312">
<!DOCTYPE web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
.pansky.webservice.xfire.study
,在这个包下面新建一个接口:
WebService入门
myEclipse开发webservice入门(2007-06-29 11:09:52)转载分类:技术参考说明:myeclipse5.1提供webservice开发插件,采用xfire引擎,另有apache的引擎Axis,两者实现方式略有差异,xfire的插件包在myEclipse安装目录MyEclipse\eclipse\plugins\com.genuitec.eclipse.ws.xfire_5.1.0下.首先:创建web service project1.新建project,选择web service project2.填写project name 和 web root folder,二者名字最好一致-->next3.默认显示需要添加的XFireServlet和services.xml,保持默认值即可-->next4.选择需要添加的包,xFire 1.2 Core Library-<MyEclipse Library>,该包默认选择.如果要在工程中开发一个客户端应用, XFire HTTP Client Libraries也是需要的.-->finish,web service project创建完成5.说明,web service project 的目录结构与web project 类似.多了一级WebServices,及该目录下的services.xml文件.还有多引用xFire 1.2 Core Libararies包.services.xml 用来注册添加的webservice其次:创建web service 实现类1.选择上述建好工程的WebServices,右键单击,依次选择new-->other-->MyEclipse-->Web Services-->Web Service-->next2.选择webservice部署的web service project(若多个web service project的话),勾选Create new Java Bean-->next3.填写如下信息:Web Service name:创建的web service 名字,即web service 类名Java Package:选择或新建web service 类所在包名将自动创建两个类,一个为类名前加I命名的接口,另一个是类名后加Impl命名的实现类,两个类的类名可修改.其它信息保持默认值即可-->finish4.创建完成后,自动将配置信息保存到services.xml文件里.5.可以根据需要修改生成的两个类,添加功能实现方法6.重复1-5可以在一个web service project工程里添加任意多个web service最后:调用web service1.如果要直接在当前应用下添加测试类调用web service的话,首先要添加调用包.方法:右键工程-->选择property-->Java Build Path-->Libraries-->Add Libraries-->MyEclipse Libraries-->XFire 1.2 HTTP Client Libraries2.新建一测试类,添加如下代码/**远程调用*/package com.capinfo.dao;import .MalformedURLException;import org.apache.axis.client.Call;import org.apache.axis.client.Service;import com.capinfo.vo.PersonVo;public class TranslateDaoImpl {/*** 调用service方法,实现翻译功能* @param originalText* @return*/public String translate(String originalText) {String translateText ="";try {/**TranslateWebService是webservice在services.xml注册的名字*/String endpoint ="http://localhost:8080/webservice_test/services/TranslateWebService"; Service service = new Service();Call call = (Call) service.createCall();call.setTargetEndpointAddress(new .URL(endpoint));/** 调用service的方法名*/call.setOperationName("translate");/** invoke方法的参数是Object数组,该数组元素个数与方法参数一致*/translateText= (String) call.invoke(new Object[] {originalText}); }catch (Exception e) {}return translateText;}}/**本地测试类调用的话,如下实现代码即可*/public static void main(String[] args) {// TODO Auto-generated method stubService srvcModel = newObjectServiceFactory().create(ITranslateWebService.class);XFireProxyFactory factory =new XFireProxyFactory(XFireFactory.newInstance().getXFire());String helloWorldURL ="http://localhost:8080/webservice_test/services/TranslateWebService";try{ITranslateWebService srvc = (ITranslateWebService)factory.create(srvcModel, helloWorldURL);String result = srvc.translate("hello world ljm");System.out.print(result);} catch (MalformedURLException e){e.printStackTrace();}}。
WebService使用
WebService使用目录目录 (2)1 XFire方式 (3)1.1 XFire生成服务端 (3)1.1.1 建立webservice工程 (3)1.1.2 建立webservice (4)1.2 访问webservice (8)1.3 XFire生成客户端 (9)1.4 客户端调用webservice服务 (10)2 AXIS方式 (11)2.1 AXIS生成服务端 (11)2.2 AXIS生成客户端 (18)2.3 客户端调用AXIS的webservice服务 (18)3 JAX-WS方式 (19)3.1 使用WSDL生成服务端 (19)3.2 创建服务端 (21)3.3 JAX-WS生成客户端 (24)3.4 客户端调用webservice服务 (26)4 CXF方式 (28)4.1 导入所需包 (28)4.2 接口创建 (28)4.3 实现类创建 (29)4.4 web.xml配置 (29)4.5 applicationContext.xml配置 (30)5 关于jax-ws服务端和xfire服务端冲突的问题 (30)6 推荐模式 (31)1XFire方式1.1XFire生成服务端1.1.1建立webservice工程●使用Myeclipse新建一个Webservice工程WBSVS,选择XFire方式。
●选择Next,默认选项●默认选项完成webservice创建1.1.2建立webservice●选中工程,新建一个webservice选择XFIRE Strategy选Create web service from java bean & create new java bean填写webservice名称,其他自动补充点击完成,系统生成如下内容●Services.xml内容如下:●Web.xml中新增webservice配置信息1.2访问webservice启动工程,使用soapui即可调用到该webservice,服务端建成。
WebService介绍
WebService介绍(WebService基础知识、XFire、CXF(基于XFire 和Celtix项目整合而来,与Spring融合好)、1 WebSerice基础2 XFire基础(2007年之后XFire发布1.2.6后停止开发,后续转为CXF项目)3 CXF基础(基于XFire和Celtix项目整合而来,与Spring融合好)4 AXIS1基础(Axis 1.4 Final 2006年后停止开发,转而AXIS2)5 AXIS2基础(有AXIS1转换而来,有Java和C版)1 WebSerice基础1.WebService的主要标准和技术:SOAP:简单对象访问协议。
UDDI:通用描述、发现和集成。
WSDL:Web服务定义语言。
ebXML:电子商务XML。
2.WebService基本操作模型:3.SOAP简介:SOAP:是一种基于XML的轻量级消息交换协议,利用SOAP可以在两个或多个对等实体之间进行信息交换。
(1).SOAP消息基本结构:/2001/12/soap-envelope”soap:encodingStyle=”/2001/12/soap-encoding”>——>SOAP信封——>SOAP消息头......——>SOAP消息体,包含所有的调用和响应信息……——>可选的,处理错误消息……——>SOAP消息附件——>SOAP信封(2).SOAP消息组成元素:SOAP Envelope:SOAP信封,用于描述消息,标识SOAP内容和信封的处理信息。
SOAP Transport:定义HTTP和SMTP等底层传输协议的绑定。
SOAP Encoding:定义将应用程序特定数据类型的实例映射为XML元素的一组编码规则。
SOAP RPC:定义RPC请求和响应的表现形式,这些SOAP请求和响应被作为一种数据类型编码传递到SOAP消息正文中。
一个SOAP消息包括一个SOAP信封,带有0个到多个附件,SOAP信封包含消息头和消息主体。
webService(axis2,cxf,xfire,gsoap)介绍
Axis2,CXF,xifire1. Axis2.x (3)1.1. 开发准备工作 (3)1.1.1. 环境 (3)1.1.2. 单独启动AXIS2服务 (4)1.1.3. 将axis2-1.6.2-bin.zip中的项目打成axis2.war包 (4)1.1.4. Axis2脚本 (5)1.1.5. 安装eclipse插件(可选) (7)1.1.6. axis2-bin文件目录结构 (8)1.1.7. 部署axis2.war到tomcat (8)1.1.8. 上传services(Uploading Services) (9)1.2. Axis2开发部署 (9)1.2.1. 编写服务器代码,和配置文件 (10)1.2.2. 发布 (11)1.2.3. 通过class文件生成wsdl文件(java2wsdl) (13)1.2.4. 通过wsdl文件生成Java访问代码(wsdl2java) (13)1.2.5. 调用:Axis2开发WebService客户端的3种方式 (14)1.2.6. PS:配置文件介绍 (21)1.3. 大病系统ESB接口开发 (25)1.3.1. esb接口标准 (26)1.3.2. esb接口开发 (31)1.3.3. esb接口调试测试 (53)1.3.4. esb接口发布 (53)2. CXF (53)2.1. 准备工作 (54)2.2. 开发示例 (54)2.2.1. 编写服务端接口 (55)2.2.2. 编写服务实现 (56)2.2.3. 编写webServiceApp.java类来暴露web服务 (57)2.2.4. 启动服务 (57)2.2.5. 编写客户端访问服务 (57)2.2.6. 测试 (58)2.2.7. 集成到spring (58)2.2.8. 通过wsdl文件生成客户端和服务器端代码 (61)3. xfire (62)3.1. 准备工作 (62)3.2. 开发步骤 (62)3.2.1. 建立目录结构 (62)3.2.2. 添加依赖包 (63)3.2.3. 编写服务端代码 (63)3.2.4. 配置web.xml (66)3.2.5. 创建xfire配置文件 (67)3.2.6. services.xml的作用 (68)3.2.7. 在服务器上运行服务 (69)4. Axis与XFire的比较 (72)4.1. XFire与Axis1性能的比较 (72)4.2. XFire与Axis2的比较 (72)5. cxf与axis2比较 (73)6. WSDL文件 (74)6.1. 抽象定义 (74)6.2. 具体定义 (74)7. JAXB (76)7.1. Java SE中的JAXB (76)7.2. 使用 (77)7.3. 缺省的数据类型绑定 (77)7.4. 代码示例 (78)1.Axis2.xWeb Service是现在最适合实现SOAP的技术,而Axis2是实现Web Service的一种技术框架(架构)。
XFire 1.2.6调用Web Service的几种方法
XFire 1.2.6调用Web Service的几种方法最近由于项目的需求,我开始学习XFire 1.2.6。
XFire的服务发布很简单,但由于xfire为用户提供了多种调用(invoke) web service的方法,所以在编写客户端代码的时侯,需要我们做一番斟酌。
在不同的应用环境下,我们可能需要采用不同的服务调用的方法。
本文将详细介绍这几种调用web服务的方法。
方法一:动态客户端(Dynamic Client)这是一种最简单的web服务调用方法。
具体过程如下:1.创建一个服务代理,其中url为调用服务的wsdl地址。
Client client = new Client(new URL(url));2.调用web服务,输入参数(简单类型)。
Object[] results = client.invoke(methodName, new Object[]{param1,param2});3.打印web 服务运行结果System.out.println((ReturnValueType)results[0]);全过程只需要三个过程,非常简单。
但是,上述过程仅限于简单的方法调用,对于那些以复杂数据结构为参数的方法,以及复杂结构的返回值的方法,需要采用另外的处理方法,否则将无法正常运行。
关于复杂参数的传递以及调用复杂返回值方法的过程还有待进一步研究,如果哪个读者熟悉这一块,可以与我联系,本人将非常感谢。
方法二:代理工厂方法(Proxy Factory)一般的方法如如下:1.创建一个服务实例,就像在自己的服务器上创建一样。
要注意的是,这里的“”Service serviceModel = new ObjectServiceFactory().create(YourService.class);要注意的是,这里的“YourService”是接口类,而不是接口的实现类。
2.定义服务URLString serviceURL = “http://localhost:8080/XFireTest/services/YourService”;3.为服务创建一个代理YourService client = (YourService) new XFireProxyFactory().create(serviceModel,serviceURL);4.使用代理访问服务提供的方法String name = (String) client.getName();如果已经知道调用的服务在本地时,我们可以采取下面方法(本地传输)来调用,这种方法可以提高调用服务的速度,减少调用服务的延迟时间。
JAVA之WebService框架---Xfire
Java WebService框架之XFire使用说明声明:此文档只为做学习交流用,如果你有任何异议或更好的想法,欢迎你在群里讨论或者与我讨论!希望能够帮到你!WebService这个字眼,或许大家听起来,并不陌生,一般做过几年开发经验的程序员,几乎都跟它打过交道,首先,我要说明的是,WebService并不是java的特权,也就是说,并不是java只有WebService,.net有,C#有。
等等不罗嗦,首先我得让大家知道,WebService是干嘛用的,从字面意思理解就是web服务,其实,说白了,Web Services就是发布的、完成其特定需求的、在线应用服务。
其他公司或应用软件能够通过Internet来访问并使用这项在线服务。
WebService的主要目标是跨平台的可互操作性。
他独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台。
(相关详细解释,大家可以百度的文库)我举个例子,或许大家就明白了,我举个它的应用,比如说,现在有这么一个需求:WebService应用案例一:张三传递给李四某个城市的名字比如说北京,李四反馈给张三北京的天气预报为:晴,王五传递给李四的城市名字济南,李四反馈给王五济南的天气预报为:阴;赵六传递给李四武汉。
等等。
但是,无论是谁想给李四传递城市的名字,必须遵循李四开放出来的一个发送地址,要不然你找不到李四,李四也收不到你的请求城市。
那么,在该示例中,无非就是想实现的一个功能就是,任何人传递给李四一个城市的相关名字,李四反馈给请求者该城市的天气情况,前提是,按照李四公布给大家的发送地址,那么,所有向李四发送请求城市的人,都会收到李四反馈的请求的城市的天气情况,那么这就是一个典型的webservice的调用,它与平台无关,跟每一个系统都无关,是独立的在线服务,那么,在此例中,每一个向李四发送请求的人,都是客户端,而李四所实现的接受城市,反馈回天气预报的功能,就是webservice的服务断,而李四提供的发送地址,就是大名鼎鼎的访问Webservice得到WSDL地址再给大家举一个例子:WebService应用案例二:有两套系统,A系统为用。
java用XFire调用webservice例子
java用XFire开发调用webService例子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 框架的安装包,下载时请选择“全部二进制发布包(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 应用配置内容。
java调用webservice XFire
问一下.Net 的开发者,开发 Web Services 有多困难?他们会被你的问题逗乐,他们会告诉你所有步骤花费 的时间不会超过一分钟。
再问一下 Java 开发者,运气好的话你会碰到上面的回答,一般情况下,你会得到 一个完全不同的答案。
从 Web Services 引入到 Java 中至今已经 5 年了,然而它仍然被认为是一门较新的 技术,一个主要的原因就是使用 Java 实现 Web Services 太困难了。
现在,随着新一代 Web Services 引 擎 XFire 的发布, 这种情况将会发生明显的变化。
类方法发布为 使用 XFire, , 你可以把 Java 类方法发布为 Web Services 而不需要编写额外的代码。
而不需要编写额外的代码。
在这篇文章中,你将会看到 XFire 使 Web Services 开发变得多么容易和简单。
Web Services 使我们能够在网络上建立分布式系统,应用程序组件可以通过任何平台、任何语言和任 何方式访问。
无论应用程序如何开发,使用了什么语言,以及运行在什么操作系统平台上,只要它作为 Web Service,并且为协同解决问题而设计,那么你的应用程序,以任何语言开发或在任何平台上,都可 以利用它的服务。
这是 Web Service 的主要概念。
为了实现 Web Services 的平台无关性和实现访问独立性,软件行业需要遵循一些作为标准的技术。
其中一些包括: ---XML:在 Web Services 环境中各层之间进行传递的默认数据格式。
---SOAP:封装和交换信息的默认协议。
第一次被提出时,它是只取 Simple Object Access Protocol(简 单对象访问协议)的首字母。
但是现在 SOAP 更多被认为是一个特定的名词,以它自己而命名,同样很多人 认为这是用词不当:SOAP 实际上不是用来访问对象的。
另外,它也不再简单。
XFire完整入门教程
XFire完整入门教程本Blog所有内容不得随意转载,版权属于作者所有。
如需转载请与作者联系(fastzch@)。
未经许可的转载,本人保留一切法律权益。
一直以来,发现有某些人完全不尊重我的劳动成果,随意转载,提醒一下那些人小心哪天惹上官司。
网上关于XFire入门的教程不少,要么是讲得很简单,就像Hello World一样的程序,要么就是通过IDE集成的工具来开发的,这对于不同的人群有诸多不便,关于XFire的一些详细的信息就不再多讲,可以参考官方网站和相关的文档,这里讲一个完整的入门实例。
实例中包括三个情况,我想基本上可以概括所有的需求,或者自己稍加扩展即可。
先来看看我们的Interface。
1package test;23import java.util.List;45public interface IHelloService {6public String sayHello(String ttt);78public Course choose(User u);910public List test(List t);11}这其中包含了简单对象的传递,对象的传递,List的传递。
具体的开发步骤如下:1、定义Web Service的接口,代码见上面的接口定义。
2、实现接口和业务逻辑,代码如下:1package test;23import java.util.ArrayList;4import java.util.List;56public class HelloServiceImpl implements IHelloService {78public String sayHello(String ttt) {9return "Hello, "+ttt;10 }1112public Course choose(User u){13 System.out.println(u.getName());14 Course c=new Course();15 c.setName("Eee");16return c;1718 }1920public List test(List t){21for (int i = 0; i < t.size(); i++) {22 System.out.println((String) t.get(i));23 }24 List al=new ArrayList();25 Course c=new Course();26 c.setName("EeeDDDDDD");27 al.add(c);28return al;2930 }31}用到的User和Course两个类的代码如下:1package test;23public class User {4private String name;56public String getName() {7return name;8 }910public void setName(String name) { = name;12 }13}141package test;23public class Course {4private String name;56public String getName() {7return name;8 }910public void setName(String name) { = name;12 }1314}3、编写XFire要求的WebSevice定义描述文件,如下:1<?xml version="1.0" encoding="UTF-8"?>2<beans xmlns="/config/1.0">34<service>5<name>HelloService</name>6<namespace>http://test/HelloService</namespace>7<serviceClass>test.IHelloService</serviceClass>8<implementationClass>test.HelloServiceImpl</implementationClass>9</service>1011</beans>此文件放在src/META-INF/xfire/services.xml,编译时会自动编译到classes的相应目录下面。
XFire WebService开发快速起步
XFire WebService开发快速起步环境:XFire-1.2.6JDK1.5MyEclipse 6.5Tom cat-5.5.27Windows XP Professional简体中文版软件下载地址:[url]/org/codehaus/xfire/xfire-distribution/1.2.6/ xfire-distribution-1.2.6.zip[/url][url]/tom cat/tom cat-5/v5.5.27/bin/apache-t om cat-5.5.27.zip[/url]有关WebService的概念、原理、数据发现、描述、绑定等过程、方式也不说了。
这里就只关注如何快速开发出来一个通用的、易懂的Hello World例子。
以下是开发步骤:1、创建工程打开MyEclipse 6.5,新建一个WebService工程。
如下图然后一路next,直到完成。
创建完成后,打开生成的web.xml文件,可以看到,XFire已经配置好了。
<?xml version="1.0"encoding="UTF-8"?><web-app xmlns="/xml/ns/javaee"xmlns:xsi="http://ww /2001/XMLSchem a-instance"version="2.5"xsi:schem aLocation="htt p:///xml/ns/javaee [url]/xml/ns/javaee/we b-app_2_5.xsd[/url]"><servlet><servlet-nam e>XFireServlet</servlet-nam e><servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet </servlet-class><load-on-startup>0</load-on-startup></servlet><servlet-m apping><servlet-nam e>XFireServlet</servlet-nam e><url-pattern>/services/*</url-pattern></servlet-m apping><welcom e-file-list><welcom e-file>index.jsp</welcom e-file></welcom e-file-list></web-app>2、创建WebService服务创建两个个包“wstest.server”和“wstest.client”,用来保存服务端和客户端程序。
用XFire开发 WebService全教程
XFire开发WebServiceXFire简介:XFire是新一代的Java Web服务引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。
和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring 集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率. 详细内容请看:/view/920041.htmlWebService简介:它是一种构建应用程序的普遍模型,可以在任何支持网络通信的操作系统中实施运行;它是一种新的web .应用程序分支,是自包含、自描述、模块化的应用,可以发布、定位、通过web调用。
Web Service是一个应用组件,它逻辑性的为其他应用程序提供数据与服务.各应用程序通过网络协议和规定的一些标准数据格式(Http,XML,Soap)来访问Web Service,通过Web Service内部执行得到所需结果.Web Service可以执行从简单的请求到复杂商务处理的任何功能。
一旦部署以后,其他Web Service应用程序可以发现并调用它部署的服务。
具体内容请访问:/view/837392.html开发环境:JDK 1.6;MyEclipse8.5;tomcat 6.0;Windows XP;XFire1.2接下来我们看怎么用XFire来构建一个webservice服务端。
1.创建工程打开MyEclipse 8.5,新建一个WebService工程。
如下图Webservice服务端名称Webservice服务路径什么都不用改动services.xml2.创建webserice服务.MyServiceTestImpl.java代码如下:Service.xml配置文件如下:3.测试服务端测试服务器我们采用Tomcat, 需要将做好的服务端打包部署到tomcat上,然后启动. 在进行测试.可以看到,我们服务端提供了一个名叫“sayHello”的接口.我们点击这个方法名.在下面填入字符串. 点击GO如下这样服务端就返回一个字符串. 说明我们服务端测试通过.4.创建客户端代码创建客户端可以用MyEcilse自带的创建客户端方式.去创建. 比较简单. 傻瓜式操作.这里我就不在示范. 我采用手写的方式写一个客户端.这样有助于大家理解.也能加深记忆.(1)创建一个工程. MyserviceCilent 添加XFire架包. 工程架构如下.(2)创建接口实现类.IMyServiceTest.java. 源码如下:package service.client;//Generated by MyEclipsepublic interface IMyServiceTest {public String sayHello(String user);}MyServiceTestImpl.java 源码如下:package service.client;//Generated by MyEclipsepublic class MyServiceTestImpl implements IMyServiceTest { public String sayHello(String user) {return"您好,"+user;}}(3)写测试类.ClientTest.java 源码如下:public static void main(String [] args){Service serviceModel = newObjectServiceFactory().create(IMyServiceTest.class);XFire xfire = XFireFactory.newInstance().getXFire();XFireProxyFactory factory = new XFireProxyFactory(xfire); String serviceUrl ="http://10.222.22.97:8080/MyServiceTest/services/MyServiceTest";IMyServiceTest client = null;try {client = (IMyServiceTest) factory.create(serviceModel, serviceUrl);} catch (MalformedURLException e) {System.out.println("Client call webservice has exception: "+ e.toString());}String result1 =client.sayHello("张三");System.out.print(result1);}直接执行后会返回以下结果.5.现在一个简单的webservice已经开发完成. 当然有的同学会提出. 只可以传递字符串类型吗?当然不是. 后续我还为大家在写传递对象类型. 集合类型. 数组类型. 敬请期待.谢谢!有什么问题,可以联系我. 邮箱:zhubox1j7253@很高兴能和你探讨.。
webService-xfire入门
webService-xfire入门环境:MyEclipse6.5+tomcat5.0第一步:创建一个webservice工程图1图2,下一步图3,下一步图4,结束第二步:创建webservice Code选择File > New > Other… > MyEclipse > Web Service > Web Service > Next图5,如图所示,下一步图6,如图所示,下一步图7,如图所示,结束,所建立工程结构如下图图8第三步:修改Code修改helloImpl代码如下图9特别提示:发布之前请检查lib目录下是否有xnlan.jar包,如果没有则请加入,否则在访问http://localhost:8080/firstWebService/services/hello?wsdl时会报如下错误:exceptionjavax.servlet.ServletException: Servlet execution threw an exceptionroot causejavax.xml.transform.TransformerFactoryConfigurationError: Providerorg.apache.xalan.processor.TransformerFactoryImpl not foundjavax.xml.transform.TransformerFactory.newInstance(Unknown Source)org.codehaus.xfire.wsdl11.builder.SchemaSerializer.writeXml(SchemaSeri alizer.java:46)org.codehaus.xfire.wsdl11.builder.SchemaSerializer.marshall(SchemaSeri alizer.java:35)com.ibm.wsdl.xml.WSDLWriterImpl.printExtensibilityElements(Unknown Source)com.ibm.wsdl.xml.WSDLWriterImpl.printTypes(Unknown Source)com.ibm.wsdl.xml.WSDLWriterImpl.printDefinition(Unknown Source)com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)com.ibm.wsdl.xml.WSDLWriterImpl.writeWSDL(Unknown Source)org.codehaus.xfire.wsdl11.builder.WSDLBuilder.write(WSDLBuilder.java:1 82)org.codehaus.xfire.wsdl11.builder.WSDLBuilderAdapter.write(WSDLBuilder Adapter.java:40)org.codehaus.xfire.DefaultXFire.generateWSDL(DefaultXFire.java:104)org.codehaus.xfire.transport.http.XFireServletController.generateWSDL( XFireServletController.java:380)org.codehaus.xfire.transport.http.XFireServletController.doService(XFi reServletController.java:125)org.codehaus.xfire.transport.http.XFireServlet.doGet(XFireServlet.java :107)javax.servlet.http.HttpServlet.service(HttpServlet.java:743)javax.servlet.http.HttpServlet.service(HttpServlet.java:856)第四步:测试是否成功最后,发布你的项目,在浏览器输入http://localhost:8080/firstWebService/services/hello?wsdl, 出现类似以下的页面则说明项目成功图10也可以在MyEclipse的Launch Web Services Explorer中进行测试图11在右侧选中WSDL Page图12图13图14 ,如出现以上结果,说明工程运行成功!第五步:创建一个webserviceClient1.首先重复第一步,工程名为firstWebServiceClient2.选择File > New > Other… > MyEclipse > Web Service > Web Service Client > Next图15,下一步图16,下一步图17,下一步图18下一步图19新的项目结构如下图图20下一步,打开helloClient.javaWebservice_Xfire入门(zpj原创)图21第六步:测试运行图22查看运行结果,如下图:OK,本例到此结束11。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Web Service实践之——开始XFire一、Axis与XFire的比较XFire是与Axis2 并列的新一代WebService平台。
之所以并称为新一代,因为它:1、支持一系列Web Service的新标准--JSR181、WSDL2.0 、JAXB2、WS-Security等;2、使用Stax解释XML,性能有了质的提高。
XFire采用Woodstox 作Stax实现;3、容易上手,可以方便快速地从pojo发布服务;4、Spring的结合;5、灵活的Binding机制,包括默认的Acegis,xmlbeans,jaxb2,castor。
XFire与Axis1性能的比较1、XFire比Axis1.3快2-6倍2、XFire的响应时间是Axis1.3的1/2到1/5XFire与Axis2的比较虽然XFire与Axis2都是新一代的WebService平台,但是Axis2的开发者太急于推出1.0版本,所以1.0还不是一个稳定的版本,它的开发者宣称1.1版本即将推出,希望1.1版本会是个稳定的版本。
在XFire捐献给apache后有人认为Axis2将会灭亡。
其实在很多人眼里,Axis2并不是pojo形式,现在也好象XFire比Axis更有市场,也有很多人开始从Axis转向XFire。
据说,XFire确实比Axis2简单很多AXIS VS CXF在SOA领域,我们认为Web Service是SOA体系的构建单元(building block)。
对于作过WebService的开发人员来说,AXIS和CXF一定都不会陌生。
这两个产品都是Apache孵化器下面的Web Service开源开发工具。
Axis2的最新版本是1.3,CXF现在已经到了2.0版本。
这两个框架都是从已有的开源项目发展起来的。
Axis2是从Axis1.x系列发展而来。
CXF 则是XFire和Celtix项目的结合产品。
Axis2是从底层全部重新实现,使用了新的扩展性更好模块架构。
CXF也重新的深化了XFire和Celtix这两个开发工具。
新产品的退出导致了几个问题。
是不是现有的使用Axis 1.x,XFire和Celix的应用需要迁移的新的版本上。
如果一个开发人员确定要迁移它的应用到新的框架上,那么他应该选择哪一个呢?相反的,如果一个开发者决定从头开发一个新的Web Service,他应该使用哪个呢?这两个框架哪一个更好一些呢?对于系统迁移来说,也许迁移到新的框架并不难。
Axis和CXF都提供了迁移的指导。
能够给开发者一些迁移的技巧和经验。
但是对于这样迁移,这两个开源项目都没有提供迁移的工具。
对于这样的迁移工作,尽管很值得去寻找所有的可行方案。
Axis2和CXF都有各自不同的WebService开发方法,每个方法都有相当数量拥护者。
通过一个比较矩阵来比较Axis2和CXF变得有现实的意义。
这两个项目都开发不够成熟,但是最主要的区别在以下几个方面:1. CXF支持WS-Addressing,WS-Policy,WS-RM,WS-Security和WS-I Basic Profile。
Axis2不支持WS-Policy,但是承诺在下面的版本支持。
2. CXF可以很好支持Spring。
Axis2不能3. AXIS2支持更广泛的数据并对,如XMLBeans,JiBX,JaxMe和JaxBRI和它自定义的数据绑定ADB。
注意JaxME和JaxBRI都还是试验性的。
CXF只支持JAXB和Aegis。
在CXF2.14. Axis2支持多语言-除了Java,他还支持C/C++版本。
比较这两个框架的Web Service开发方法与比较它们的特性同样重要。
从开发者的角度,两个框架的特性相当的不同。
Axis2的开发方式类似一个小型的应用服务器,Axis2的开发包要以W AR的形式部署到Servlet容器中,比如Tomcat,通过这些容器可以对工作中的Web Service进行很好的监控和管理。
Axis2 的Web administrion模块可以让我们动态的配置Axis2.一个新的服务可以上载,激活,使之失效,修改web服务的参数。
管理UI也可以管理一个或者多个处于运行状态的服务。
这种界面化管理方式的一个弊端是所有在运行时修改的参数没有办法保存,因为在重启动之后,你所做的修改就会全部失效。
Axis2允许自己作为独立的应用来发布Web Service,并提供了大量的功能和一个很好的模型,这个模型可以通过它本身的架构(modular architecture)不断添加新的功能。
有些开发人员认为这种方式对于他们的需求太过于繁琐。
这些开发人员会更喜欢CXF。
CXF更注重开发人员的工效(ergonomics)和嵌入能力(embeddability)。
大多数配置都可以API来完成,替代了比较繁琐的XML配置文件,Spring的集成性经常的被提及,CXF 支持Spring2.0和CXF's API和Spring的配置文件可以非常好的对应。
CXF强调代码优先的设计方式(code-first design),使用了简单的API使得从现有的应用开发服务变得方便。
不过你选择Axis2还是CXF,你都可以从开源社区得到大量的帮助。
这两个框架都有商业公司提供服务,WSO2提供AXIS2的支持,Iona提供CXF的支持。
这两公司都有很活跃的开发者社区。
Axis2出现的时间较早,CXF的追赶速度快。
我的建议是:如果你需要多语言的支持,你应该选择AXIS2。
如果你需要把你的实现侧重JA V A并希望和Spring集成,CXF就是更好的选择,特别是把你的Web Service嵌入其他的程序中。
如果你觉得这两个框架的新特性对于你并没有太大的用处,你会觉得Axis1也是不错的选择,你应该继续使用它知道你有充分的理由去更换它。
二、开始XFire的生火之旅:1、配置XFire运行环境:在Tomcat下新建一个Web Applications,命名为stove,然后在其WEB-INF目录下新建一个web.xml文件,文件中输入:Xml代码1.<?xml version="1.0" encoding="GB2312">2.<!DOCTYPE web-app3. PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"4. "/dtd/web-app_2_3.dtd">5.6.<web-app>7.8. <servlet>9. <servlet-name>XFireServlet</servlet-name>10. <display-name>XFire Servlet</display-name>11. <servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class>12. </servlet>13.14. <servlet-mapping>15. <servlet-name>XFireServlet</servlet-name>16. <url-pattern>/servlet/XFireServlet/*</url-pattern>17. </servlet-mapping>18.19. <servlet-mapping>20. <servlet-name>XFireServlet</servlet-name>21. <url-pattern>/services/*</url-pattern>22. </servlet-mapping>23.24.</web-app><?xml version="1.0" encoding="GB2312"><!DOCTYPE web-appPUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN""/dtd/web-app_2_3.dtd"><web-app><servlet><servlet-name>XFireServlet</servlet-name><display-name>XFire Servlet</display-name><servlet-class>org.codehaus.xfire.transport.http.XFireConfigurableServlet</servlet-class> </servlet><servlet-mapping><servlet-name>XFireServlet</servlet-name><url-pattern>/servlet/XFireServlet/*</url-pattern></servlet-mapping><servlet-mapping><servlet-name>XFireServlet</servlet-name><url-pattern>/services/*</url-pattern></servlet-mapping></web-app>其中主要就是引入了XFireServlet,用以处理Web Service请求,并且负责提供Web Service 的WSDL,如果你发布了一个名为BookService的WebService,则可以通过网址:http://<服务器>[:端口]/<webapp名>/services/BookService来访问这个WebService,并且通过地址:http://<服务器>[:端口]/<webapp名>/services/BookService?WSDL 来得到这个WebService的WSDL信息。