XFire开发webservice服务和客户端全攻略
webservice四种发布方式及客户端调用
WebService 四种发布方式总结Author:yczhang1.CXF方式CXF与spring搭建webservice是目前最流行的方式,但是传闻cxf与jdk1.5有些不兼容,我没有遇到过,我遇到的问题是cxf与was6.1.1不兼容,表现在cxf必须的jar包“wsdl4j-1.6.2.jar”报错,报的错为:ng.IncompatibleClassChangeError,明显的jar包不兼容问题,很是头痛,后来查找资料找到解决办法是,将上述jar包新建一个was共享库,可以解决,但是客户周经理不想用此种方式,因为需要修改was,于是改用了axis2方式,下文会介绍。
该问题在此处做个记录,以后使用cxf与was的时候需要注意!!!使用cxf+spring搭建WebService:第一步,添加jar包。
此处需要注意,不同环境(tomcat、was)jar也不一定相同,例如我本地cxf+spring只需要如下jar包:而泰康的was环境则需要如下jar包:明显的多了很多,原因应该是服务器jar包池的不同。
根据错误提示缺什么补什么就可以了,注意jar包勿重复。
第二步,配置web.xml文件,如下(重要的地方已标记):<context-param><param-name>contextConfigLocation</param-name><param-value>classpath:/applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework.web.context.ContextLoaderListener </listener-class></listener><!-- Character Encoding filter --><filter><filter-name>encodingFilter</filter-name><filter-class>org.springframework.web.filter.CharacterEncodingFil ter</filter-class><init-param><param-name>encoding</param-name><param-value>UTF-8</param-value></init-param></filter><filter-mapping><filter-name>encodingFilter</filter-name><url-pattern>/*</url-pattern></filter-mapping><servlet><servlet-name>CXFServlet</servlet-name><servlet-class>org.apache.cxf.transport.servlet.CXFServlet</servlet-c lass><load-on-startup>1</load-on-startup></servlet><servlet-mapping><servlet-name>CXFServlet</servlet-name><url-pattern>/webservice/*</url-pattern></servlet-mapping>上述标记的地方,第一处是spring配置文件路径;第二出是wsdl地址内容;第三步,编写接口类与实现类,注意注解接口类@WebServicepublic interface SendService {public boolean sendOA(@WebParam(name="param")String param);public boolean sendOrg(OrgEntity org);}实现类@WebService(endpointInterface="com.service.SendService",serviceName=" sendService")public class SendServiceImpl implements SendService{public boolean sendOA(String param) {System.out.println("-------sendOA---------param:"+param);if(param.equals("zhoujian")){return true;}return false;}public boolean sendOrg(OrgEntity org) {System.out.println("-------sendOrg--begin-------");return true;}}第四步,Spring配置文件“jaxws:client”该标签可以不必写,访问时可以手动拼接该url 第五步,发布,直接部署到服务器,访问:2.Xfire方式据说xfire方式已经很老了,但个人感觉,xfire方式很简单且容易配置,不知为啥过时了,也没感觉cxf、axis2哪里先进,我当时卡在cxf与was搞不定时想尝试xfire方式被周经理给拒绝了。
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服务启动的时候若出现下面错误。
cxf框架的使用流程
CXF框架的使用流程1. 什么是CXF框架?Apache CXF(前身是Xfire)是一个开源的Web服务框架,用于构建和开发服务导向架构(SOA)应用程序。
CXF提供了一种简单而强大的方式来创建、部署和管理Web服务,支持SOAP、REST、XML和JSON等多种协议。
它基于Java标准,可以与Java EE和Spring框架无缝集成,是一个功能丰富且灵活的框架。
2. CXF框架使用流程使用CXF框架开发Web服务通常有以下几个步骤:步骤一:创建Web服务的接口首先,需要定义Web服务的接口。
在接口中定义服务的方法,参数和返回值类型。
接口可以按照业务需求进行设计,并使用注解来标记服务方法。
步骤二:实现服务接口接下来,需要实现定义的接口。
在实现类中编写具体的服务逻辑代码。
可以根据业务需求调用其他服务或持久化数据。
步骤三:发布Web服务使用CXF框架提供的工具类将服务发布为Web服务。
可以通过Spring配置文件或Java代码的方式来发布服务。
步骤四:客户端调用服务编写客户端代码来调用已发布的Web服务。
可以使用CXF框架提供的工具类生成客户端代码,也可以手动编写客户端调用代码。
步骤五:部署和运行将服务端和客户端的代码部署到相应的容器或服务器上。
可以使用Maven等构建工具打包项目,并将生成的war或jar文件部署到Tomcat或其他容器中运行。
3. CXF框架使用示例下面是一个使用CXF框架开发Web服务的简单示例:步骤一:定义服务接口package com.example.service; import javax.jws.WebMethod;import javax.jws.WebService;@WebServicepublic interface HelloWorldService { @WebMethodString sayHello(String name);}步骤二:实现服务接口```java package com.example.service;import javax.jws.WebService;@WebService(endpointInterface =。
.net framework调用webservice接口步骤
.net framework调用webservice接口步骤在.NETFramework中,调用Webservice接口是一项重要的任务,它允许我们与远程服务器进行通信,执行特定的操作并获取结果。
下面是一个详细的步骤指南,指导您如何在.NETFramework中调用Webservice接口:步骤1:添加Webservice引用首先,您需要将Webservice的URL添加到项目中,以便在代码中引用它。
您可以使用“添加服务引用”对话框来完成此操作。
在VisualStudio中,导航到“服务”选项卡,然后选择“添加服务引用”。
在URL框中,输入Webservice的URL地址,并确保选择正确的协议(如HTTP或SOAP)。
步骤2:创建代理类一旦您添加了Webservice引用,VisualStudio将为您生成一个代理类。
这个类将包含用于与Webservice交互的方法。
您可以使用这个代理类来调用Webservice的方法。
步骤3:编写代码调用Webservice方法接下来,您需要编写代码来调用Webservice的方法。
通常,这些方法使用SOAP(SimpleObjectAccessProtocol)格式,并返回XML数据。
您可以使用代理类中的方法来执行此操作。
以下是一个简单的示例代码,展示了如何调用一个名为“MyWebService”的Webservice的方法:```csharp//创建代理对象MyWebServiceClientclient=newMyWebServiceClient();//调用方法并获取结果stringresult=client.MyWebServiceMethod();```在这个示例中,“MyWebServiceClient”是自动生成的代理类,而“MyWebServiceMethod”是您要调用的Webservice方法。
您需要将实际方法的名称替换为适当的名称。
步骤4:处理返回结果一旦您调用了Webservice方法并获得了结果,您需要对其进行适当的处理。
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
,在这个包下面新建一个接口:
Xfire指南
Xfire指南1. 概述XFire是全球众多牛人在与axis系列对比后一致投票的选择。
我比较欣赏的特性有:1.与Spring整合,无须生成一堆文件,无须打包独立war,直接将应用中的Pojo导出为Web服务。
2.Aegis--超简约的默认Java XML 绑定机制,且可以Plugin其他绑定机制。
3.JSR181--annotatiton驱动的POJO WebService配置。
4.基于Stax的高性能框架。
5.脱离Web服务器的单元测试能力。
网上的文档与例子总是不新,请大家抛开所有的文档,所有的Axis 习惯,单看这份代表XFire1.2.2最简约做法的指南。
2. 生火指南2.1 修改web.xml,在Web应用中增加XFire的入口注意XFire有了自己的Servlet,不再依赖Spring MVC的DispatchServlet,也就远离了大家不熟悉的Spring MVC URL Mapping,与Spring达致完美的整合。
这里指定了路径为/service/* ,即WebService的URL会被默认生成为/yyy/service/BookServiceservice/ServiceName ,其中ServiceName默认为下文中的接口名。
xml 代码1.<servlet>2. <servlet-name>xfireservlet-name>3. <servlet-class>org.codehaus.xfire.spring.XFireSpringServletservlet-class>4. servlet>5. <servlet-mapping>6. <servlet-name>xfireservlet-name>7. <url-pattern>/service/*url-pattern>8. servlet-mapping>如果应用使用了Hibernate,使用了OpenSessionInView Filter,注意配置OSIV Filter Filter覆盖xfire servlet的路径,即本例中的/service/*.2.2 编写窄接口,抽取POJO中要导出的服务从已有的BookManager.java中,抽取出一个窄接口,仅暴露需要导出为Web Service的方法。
XFire与Tomcat整合
Web Service框架XFire与Tomcat集成刘岩虽然XFire 已经过时,但是无奈上个公司的项目用的是jdk1.4,所以我只能选择了老战车XFire 进行Web Service 的开发。
首先先用MyEclipse 建立一个web 项目,如图所示:利用myeclipse 为web 项目添加xfire 的支持,如图。
1一直点击默认即可,虽然这里是利用myeclipse 插件进行的辅助添加,但是我们还是有必要看一下myeclipse 为我们做了什么,添加了哪些jar 包。
有关xfire 的核心jar 包如下图:您最好还是看看都有哪些jar 包,要不你的项目经理哪天该说了:“小X 啊?你看看哪些jar2包是不必要的,咱们的服务器空间可不够啊…………”。
连服务器的空间都放不下几十兆的jar 包,我只能了。
再来看/WebServices/services.xml ,这个文件在真正环境中是会被放到到/WebRoot/WEB-INF/classes/META-INF/xfire 下面,这个类似于Spring 在web 项目中的配置文件。
这个文件是配置你要暴露的web service 的文件的,稍后还会详细阐述。
下面我们看看web.xml 修改了些什么东西,web.xml 内容如下:<?xml version="1.0" encoding="UTF-8"?><web-app xmlns="/xml/ns/j2ee"xmlns:xsi="/2001/XMLSchema-instance"version="2.4"xsi:schemaLocation="/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsd"><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><welcome-file-list><welcome-file>index.jsp</welcome-file></welcome-file-list></web-app>声明了一个Servlet,此XFireServlet 拦截了所有关于/services/*的请求,所以对外系统开放的web service 的url 基本上都是” http;//127.0.0.1:端口/项目/services/服务名”的形式。
.net framework调用webservice接口步骤
.net framework调用webservice接口步骤摘要: Framework 简介2.WebService 接口概述3.调用WebService 接口的步骤a.创建WebService 引用b.调用WebService 方法c.处理返回结果正文:.NET Framework 是一个微软开发的软件框架,它提供了许多用于创建Windows 应用程序和Web 应用程序的功能和工具。
在.NET Framework 中,WebService 是一种用于在不同网络设备之间共享数据和服务的应用程序接口。
调用WebService 接口是.NET Framework 中的一项重要功能,可以帮助开发人员轻松地实现跨平台、跨语言的通信。
要调用WebService 接口,需要遵循以下步骤:1.创建WebService 引用首先,需要在.NET Framework 项目中创建一个对WebService 的引用。
这一步可以通过在Visual Studio 中添加现有WebService 的引用或创建一个新的WebService 引用来实现。
在创建引用时,需要提供WebService 的地址和访问凭据(如用户名和密码)。
2.调用WebService 方法一旦创建了WebService 引用,就可以使用它来调用WebService 中的方法。
调用方法时,需要使用WebService 引用作为前缀,例如:```myWebService.MyMethod(参数1, 参数2);```其中,`myWebService`是WebService 引用,`MyMethod`是要调用的方法,`参数1`和`参数2`是传递给方法的参数。
3.处理返回结果当WebService 方法返回结果时,.NET Framework 会自动将其转换为适当的类型并返回给调用方。
调用方需要根据返回结果的类型来处理它。
例如,如果方法返回一个字符串,可以将其存储在一个变量中或将其显示在界面上。
WebService教程详解(一)
WebService教程详解(⼀)Web Services 可以将应⽤程序转换为⽹络应⽤程序。
通过使⽤ Web Services,您的应⽤程序可以向全世界发布信息,或提供某项功能。
Web Services 可以被其他应⽤程序使⽤。
通过 Web Services,您的会计部门的 Win 2k 服务器可以与 IT 供应商的 UNIX 服务器相连接。
基本的 Web Services 平台是 XML+HTTP。
Web services 使⽤ XML 来编解码数据,并使⽤ SOAP 来传输数据。
什么是webServiceWebService,顾名思义就是基于Web的服务。
它使⽤Web(HTTP)⽅式,接收和响应外部系统的某种请求。
从⽽实现远程调⽤.1:从WebService的⼯作模式上理解的话,它跟普通的Web程序(⽐如ASP、JSP等)并没有本质的区别,都是基于HTTP传输协议的程序。
2:WebService所使⽤的数据均是基于XML格式的。
⽬前标准的WebService在数据格式上主要采⽤SOAP协议。
SOAP协议实际上就是⼀种基于XML编码规范的⽂本协议。
webService的技术⽀持Web Service平台需要⼀套协议来实现分布式应⽤程序的创建。
任何平台都有它的数据表⽰⽅法和类型系统。
要实现互操作性,Web Service平台必须提供⼀套标准的类型系统,⽤于沟通不同平台、编程语⾔和组件模型中的不同类型系统。
⽬前这些协议有:XML和XSD 可扩展的标记语⾔XML 是Web Service平台中表⽰数据的基本格式。
除了易于建⽴和易于分析外,XML主要的优点在于它既与平台⽆关,⼜与⼚商⽆关。
XML是由万维⽹协会(W3C)创建,W3C制定的XML SchemaXSD 定义了⼀套标准的数据类型,并给出了⼀种语⾔来扩展这套数据类型。
Web Service平台是⽤XSD来作为数据类型系统的。
当你⽤某种语⾔如VB. NET或C# 来构造⼀个Web Service时,为了符合Web Service标准,所有你使⽤的数据类型都必须被转换为XSD类型。
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();如果已经知道调用的服务在本地时,我们可以采取下面方法(本地传输)来调用,这种方法可以提高调用服务的速度,减少调用服务的延迟时间。
xfire根据WSDL生成客户端代码
指定WSDL文件的位置、存根代码的输出地址及对应的类包,点击Finish。
3.XFire插件将在生成客户端代码存根的同时生成服务端代码的存根,如图16-7所示。
图16-6 创建客户端代码存根 图16-7 生成的代码
安装Eclipse XFire插件
1.Help→Software Updates→Find and Install...;
2.选择“Search for new features to install”,并点击Next;
3.选择“New Remote Site...”,创建一个Name为Xfire且URL为
下面,我们利用XFire生成的BbtForumServiceClient对服务端的Web S例化一个BbtForumServiceClient,然后通过URL指定Web Service的服务地址,然后创建一个服务的窄接口实例,如①所示,接着我们就可以使用这个窄接口实例进行Web Service服务的调用了。
根据WSDL生成客户端代码
XFire允许通过运行Ant任务,根据WSDL文件生成访问Web Service的客户端代码存根,同时XFire还提供了一个Eclipse插件完成相同的任务。在本节中,我们将学习通过XFire Eclipse插件生成BbtForumService客户端存根代码的知识。
/xfire/update/的网站;
4.点击Finish安装XFire插件。
使用插件创建客户端代码存根
1.File→New→Other...→XFire→Code generation from WSDL document。
2.弹出一个对话框,如图16-6所示。
BbtForumServiceClient是BbtForumServicePortType的工厂类,它提供了若干个获取BbtForumServicePortType实例的重载方法。BbtForumServicePortType对应服务端的窄接口BbtForumService类。而BbtForumServiceImpl是服务端的存根代码,在META-INF中还有XFire的服务配置文件。对于客户端来说,一般不需要服务端的代码,所以用户可以将BbtForumServiceImpl和META-INF删除。
eclipse创建webservice的两种方法
在eclipse 中创建webservice项目方法一:使用xfire支持1.创建Dynamic Web Project 项目:2.将编译路径改为项目/web-INF/classes;3.将META-INF 文件夹移动到src下面,并在META-INF 中创建xfire文件夹,文件夹内放入services.xml文件;4.添加xfire支持的jar包:5.编写web.xml:7.编写services.xml可以存在多个service;8.访问http://localhost:port/projectName/services/url-pattern?wsdl(蓝色字体均为相应的内容);方法二:使用Axis2支持1.1Axis2发行包Axis2以多个发行包发行。
你需要哪个视你所需决定。
1.1.1标准二进制发行包如果你正在开发服务和应用程序,你需要Axis2标准二进制发行包。
这个发行包包括所有必要的*.jar文件,以及很多便于开发用的脚本。
它具有以下结构。
Axis2标准二进制发行包目录的结构binaxis2.bataxis2.shaxis2server.bataxis2server.shjava2wsdl.batjava2wsdl.shwsdl2java.batwsdl2java.shsetenv.shlibactivation-1.1.jar...XmlSchema.jarrepositorymodulesmodules.listaddressing-1.1.mar...servicesservices.listversion.aar...samples...webapp...confaxis2.xmlLICENSE.txtREADME.txtNOTICE.txtINSTALL.txtrelease-notes.htmlbin目录包括一些有用的脚本。
它们包括axis2.bat(或者axis2.sh),这个文件可以让你在不手工添加Axis2 jar文件到类路径的情况下方便的执行Java命令;java2wsdl.bat(和.sh)和wsdl2java.bat(和.sh),它可以让你轻易的从一个WSDL文件生成Java代码,反之亦然;axis2server.bat(和sh),一个简易Web服务器,它可以让你早自己的应用程序中搭建Axis2的功能来发送接收消息。
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 应用配置内容。
泛微OA工作流WebService接口使用说明
工作流WebSeivice 接口使用说明一、检查部署是否成功:输入下面的地址1】眄//192・168・4・183(换成实际的地址):8060(实际的端I I 号)/s 亡rvice 乂界面中有如下服务即町:=Google |g ‘ PC C邑workflow 包 圍百(S 医 百度搜索』bscript alerty 翻译 O 个人门户 邑工佗<|*| 倉HP QueCLity Center 10. CO | XFire Scrzi c«sX 査投 |endraQuAvailable Services:• DocService [柘di ] -MobileServlce [呼口]■ RcaucstEcTyicc 丨wsdl ■ Work fl er vi c e 臥El I?Generated by >ZFire ( http ://xfire ・ codehaus ・ org )采用Web Service 技术进行协同系统和业务系统进行数据交互,由协同系统方开发实现Web Seiverice 服务,业务系统方需在本地实现Web Serverice 本地代理来进行调用。
协同系统方需提供的服务接口如下: 1、 流程创建接口 2、 流程流转控制接口提供流程提交,退回和转发控制接II 3、 需业务系统处理的任务列表根据用户id 和流程id 获取该人员需要业务系统处理的任务列表,如果需要获取表单的 数据在通过reqestid 调用获取表单数据接「I 4、 获取表单数据接口根据协同系统中流程主键requestid 获取表单中所有数据 5、 己归档任务列表根据创建人id 和流程id 获取已经归档的任务列表2・2・2接口说明接11名称参数说明返回值功能描述上一个下一个[7选顶▼ ImT "192.168.4. 63 rservicesT (K ) 査看收睑夹00 工且CT ) 希助00接口对象说明:1)WorkflowRequestliifb 匸作流请求信息*请求ID*/private String lequestld;*请求标题*/private String lequestName;*请求重要级别*/private String requestLevel;*短信提醒*/*流程类型*/private WorkflowBaseliifb workflowBaseliifo;/***当前节点名称*/private String cuirentNodeName;/***当前节点Id*/private String cuirentNodeld;*流程状态*/private String status;*创建者*/private String creatorld;*创建时间*/private String createTmie;*最后操作者名称*/private Strmg lastOpeiatorName;/***最后操作时间*/private Strmg lastOpeiateTune;*是否可查看*是否可编辑*/private boolean caiiEdit;*签字意见是否必填*/private boolean mustliiputReniark:*主表信息*/private WorkflowMamTableliifo workflo wMainTablelnfo;*明细表信息*/private WorkflowDetailTableIiifb[] workflowDetailTableliifbs;*流转口志信息*/private WorkflowRequestLog[] workflowRequestLogs;*HTML显示模板*0 iPad*1 iPhone*/private Striiig[] WorkflowHtiiilTemplete;*解析后的HTML显示内容*0 iPad*1 iPhone*/private Striiig[] WorkflowHtiiilShow;*被代理人*/*流程短语*/private Striiig[][] woikflowPluases;2)WorkflowBaselnfo 匸作流信息/***工作流ID*/private String woikflowld;*工作流标题*/private String woikflowName;*工作流类型ED*/private String woikflowTypeld;*工作流类型名称*/private String woikflowTypeName;2.2.3调用实例根据实际的webseivice客户端实现的客户端代码均不相同•以下仅供参考.1)创建流程2)3)获得代办事宜列表。
用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@很高兴能和你探讨.。
用vfp编写WebService-电脑资料
用vfp编写WebService-电脑资料半年来,一直想写一篇关于用 Visual FoxPro 7 编写 Web Service 的文章,但总不成愿,。
这回不是我偷懒,为了了解这种新技术我和我的朋友们经历了种种“磨难”。
这里略作回忆,也算是新春来临之际对“往年”的回眸——算是没有浪费太多的生命。
磨难一:发布向导不能正确发布Web Service。
7月份就拿到了Visual FoxPro 7,查遍Sample,没有发现有关于 Web Service 的 Demo。
但在Help里以及微软对 Visual FoxPro7 的宣传里,都信誓旦旦的:我们支持开发Web Service…… 还好在Msdn 里看到了一篇名为《Creating Web Services with Visual FoxPro》的文章。
真的很不幸,按部就班做实验却不能正确发布 Web Service。
经过反复研究,我认为这是一个Bug,还好发现了能绕过这个Bug的路径。
这个时候已经是10月份了……磨难二:原来 Web Service 是无状态的!真是浪费生命啊,还好我已经不是专业的Visual FoxPro 程序员了,业余的消闲,没有压力。
大家记得BOE上的我写的《Visual FoxPro 7 全新登场-- XML 在 COM 组件数据集传递中的意义》一文吗?那篇东西的示例,原本是为本文的 Web Service 准备的:当代码仅编译为COM 被使用时,一切都在我的设想中;而进一步发布为Web Service,怪问题产生了—— Web Service 不能记忆我对它命令。
经研究原来 Web Service 是“无状态”的(“无状态”在前几年就看到过了,当时无法理解。
没想到现在 Web Service 帮我理解了这个概念,也算因祸得福)。
磨难三:Xmltocursor()对中文支持有问题!自以为已经能用 Visual FoxPro 编写一些小的 Web Service 应用了,于是向一位网友鼓吹:用Web Service做你那个应用吧!人家很仔细,第二天就告诉了我一个大问题:用xmltocursor() 没法正确处理包含中文的xml 文档,很多中文字符会被截断!昏倒,又是一个Bug!那个时候微软已经宣布将要发布Visual FoxPro7的SP1,于是我就一边等待SP1,一边寻找其他的解决方案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用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无缝集成。
XFire 是完全基于流数据处理进行工作的系统,这意味着XFire不是将整个SOAP文档缓存在内存中,而是以管道的方式接收SOAP流数据。
这种工作方式的转变带来了可观的性能回报,同时节省了内存的占用。
XFire 从管道中接收一个SOAP请求到返回一个SOAP响应,会经历一系列的阶段。
在管道调用的任何一个阶段,XFire都可以添加一些额外的Handler,在对消息进行加工处理后再传入到下一个阶段中。
在SOAP请求消息对Web Service发起真正调用之前,分别会经过传输、预转发、转发、策略实施、用户信息处理、预调用、服务调用等阶段。
二.开发环境笔者的开发环境描述如下:1)jdk: 1.5 版本;2)Tomcat :5.5.20;3)MyEclipse: 5.1.1 GA 。
三.开发步骤1. 工程与环境的建立在MyEclipse中新建Web工程,名为webservice_helloworld。
选择该工程后,点击右键选择MyEclipse->Add Web Service Capabilities,弹出Add Web Service Capabilities对话框,点击“Next”,弹出Project Library Configuration对话框,默认选择Core Libraries,点击“Finish”按钮,完成XFire核心包的添加。
为了后续的客户端的测试,还需读者加入commons- httpclient.jar包到WEB-INF/lib下。
部署后可看到此时WEB-INF/lib的jar包列表如下:activation-1.1.jar 、commons-beanutils-1.7.0.jar、commons-codec-1.3.jar、commons- httpclient.jar、commons-logging-1.0.4.jar、jaxen-1.1-beta-9.jar、jaxws-api- 2.0.jar、jdom-1.0.jar、jsr173_api-1.0.jar、mail-1.4.jar、saaj-api-1.3.jar、saaj-impl-1.3.jar、spring-1.2.6.jar、stax-api-1.0.1.jar、wsdl4j-1.5.2.jar、wstx-asl-3.0.1.jar、xbean-2.1.0.jar、xbean-spring-2.5.jar、xfire-aegis- 1.2.2.jar、xfire-annotations-1.2.2.jar、xfire-core-1.2.2.jar、xfire- java5-1.2.2.jar、xfire-jaxws-1.2.2.jar、xfire-jsr181-api-1.0-M1.jar、xfire- spring-1.2.2.jar、XmlSchema-1.1.jar为了后续的开发和测试,在src目录下分别建立test和webservice目录,分别用于存放测试文件和webservice的相关类。
2 .Web Service实现的编写在本例中,我们只是做一个helloWorld的简单例子。
Web Service服务端提供一个根据输入的名字信息回复相应的helloWorld信息的。
例如,当名字为“阿蜜果”时,恢复信息为“hello,阿蜜果”。
下面让我们一步一步来开始进行编码。
1)web.xml 的配置一般情况下,我们通过HTTP作为Web Service的传输协议,这样我们只需启动一个Web服务器(如Tomcat,在本例中使用的是Tomcat5.5.20),这样客户端就可以通过HTTP访问到Web Service服务。
为了集成Spring容器,XFire专门提供一个XFireSpringServlet,我们可以在web.xml中配置该Servlet,将Spring容器中定义的Web Service在某个URI下发布。
为了能正确使用XFire,需在web.xml中进行相应配置,在该文件中配置XFire的servlet 和servlet-mapping 。
同时因为本实例需要将XFire 集成到Spring 中,因而需要在web.xml 文件中加载Spring 的相应配置文件。
在本实例中,我们首先在WEB-INF 下建立两个配置Spring 配置文件,一个为applicationContext.xml ,该文件用来定义本工程的bean ,一个为xfire-servlet.xml ,用来配置XFire 的相关bean 。
修改后的web.xml 的内容如下所示:<? xml version="1.0" encoding="UTF-8" ?>< web-app xmlns ="/xml/ns/j2ee" xmlns:xsi ="/2001/XMLSchema-instance" version ="2.4" xsi:schemaLocation ="/xml/ns/j2ee /xml/ns/j2ee/web-app_2_4.xsd" > < display-name > XFireService </ display-name ><!-- begin Spring配置-->< context-param >< param-name > contextConfigLocation </ param-name >< param-value > /WEB-INF/applicationContext.xml,/WEB-INF/xfire-servlet.xml </ param-value ></ context-param >< listener >< listener-class > org.springframework.web.context.ContextLoaderListener</ listener-class ></ listener >< listener >< listener-class > org.springframework.web.util.IntrospectorCleanupListener</ listener-class ></ listener ><!-- end Spring配置--><!-- begin XFire 配置-->< servlet >< servlet-name > xfire </ servlet-name >< servlet-class > org.springframework.web.servlet.DispatcherServlet </ servlet-class ></ servlet >< servlet-mapping >< servlet-name > xfire </ servlet-name >< url-pattern > *.ws </ url-pattern ></ servlet-mapping >< servlet ><!-- 配合Spring容器中XFire一起工作的Servlet -->< servlet-name > xfireServlet </ servlet-name >< servlet-class > org.codehaus.xfire.spring.XFireSpringServlet </ servlet-class > </ servlet >< servlet-mapping >< servlet-name > xfireServlet </ servlet-name ><!-- 在这个URI下开放Web Service服务-->< url-pattern > /service/* </ url-pattern ></ servlet-mapping ><!-- end XFire 配置--></ web-app >2)Web Service 的接口类HelloWorld.java 和对应实现类HelloWorldImpl.java为了用Web Service 完成HelloWorld 功能,我们首先在src/webservice 目录下建立接口类HelloWold.java 。