




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Spring集成XFire开发WebService_普通_WEB_eNet硅谷动力商用软件频道出处:硅谷动力Spring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却十分繁琐。XFire是一个简化WebService开发的开源项目,通过Spring和XFire的结合可以大大简化基于Spring Framework的应用中的WebService开发。Spring和XFire可以通过多种方式结合,下文介绍的是笔者常用的一种简单而实用的方法。所用的Spring版本为2.0,XFire版本为1.2.6。1 配置XFire Servlet在web.xml中加入如下配置:servletservlet-nameXFireServlet/servlet-nameservlet-classorg.codehaus.xfire.spring.XFireSpringServlet/servlet-class/servletservlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/servlet/XFireServlet/*/url-pattern/servlet-mappingservlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/services/*/url-pattern/servlet-mapping2 配置Spring的监听器,同基于spring的Web项目一样Spring的监听器是必不可少的。context-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:org/codehaus/xfire/spring/xfire.xml,/WEB-INF/applicationContext.xml/param-value/context-paramlistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listener以下是完整的web.xml配置文件?xml version=1.0 encoding=UTF-8?web-app version=2.4xmlns=/xml/ns/j2eexmlns:xsi=/2001/XMLSchema-instancexsi:schemaLocation=/xml/ns/j2ee/xml/ns/j2ee/web-app_2_4.xsdcontext-paramparam-namecontextConfigLocation/param-nameparam-valueclasspath:org/codehaus/xfire/spring/xfire.xml,/WEB-INF/applicationContext.xml/param-value/context-paramlistenerlistener-classorg.springframework.web.context.ContextLoaderListener/listener-class/listenerservletservlet-nameXFireServlet/servlet-nameservlet-classorg.codehaus.xfire.spring.XFireSpringServlet/servlet-class/servletservlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/servlet/XFireServlet/*/url-pattern/servlet-mappingservlet-mappingservlet-nameXFireServlet/servlet-nameurl-pattern/services/*/url-pattern/servlet-mapping/web-app3 定义接口及实现服务定义接口,这个接口中定义要通过WebService暴露的方法package org.ccsoft;publicinterface HelloWS public String sayHello(String sb);实现服务package org.ccsoft;publicclass HelloWSImp implements HelloWS public String sayHello(String sb) / TODO Auto-generated method stubreturnHello +sb;4 配置服务将上文中实现的服务,加入到spring的配置文件中。?xml version=1.0 encoding=UTF-8?beans xmlns=/schema/beansxmlns:xsi=/2001/XMLSchema-instancexsi:schemaLocation=/schema/beans /schema/beans/spring-beans-2.0.xsdbean id=helloWS class=org.ccsoft.HelloWSImp/bean name=helloService class=org.codehaus.xfire.spring.ServiceBeanproperty name=serviceBean ref=helloWS/property name=serviceClass value=org.ccsoft.HelloWS/property name=inHandlerslistref bean=addressingHandler/list/property/beanbean id=addressingHandler class=org.codehaus.xfire.addressing.AddressingInHandler/beans在Spring集成XFire开发webserviceSpring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却十分繁琐。XFire是一个简化WebService开发的开源项目,通过Spring和XFire的结合可以大大简化基于Spring Framework的应用中的WebService开发。XFire是完全基于流数据处理进行工作的系统,这意味着XFire不是将整个SOAP文档缓存在内存中,而是以管道的方式接收SOAP流数据。这种工作方式的转变带来了可观的性能回报,同时节省了内存的占用。对于习惯了Axis、GLUE等这些基于DOM处理模型Web Service框架的开发者来说,需要一些时间来适应这种转变。XFire从管道中接收一个SOAP请求到返回一个SOAP响应,会经历一系列的阶段。在管道调用的任何一个阶段,XFire都可以添加一些额外的 Handler,在对消息进行加工处理后再传入到下一个阶段中。图1展示了XFire管道从接收SOAP请求到返回SOAP响应所经历的所有阶段:图1 XFire Web Service请求和响应的过程在SOAP请求消息对Web Service发起真正调用之前,分别会经过传输(Transport)、预转发(PreDispatch)、转发(Dispatch)、策略实施 (Policy)、用户信息处理(User)、预调用(PreInvoke)、服务调用(Service Invocation)等阶段。当,Web Service调用后,XFire生成响应SOAP消息并通过管道发送给客户端请求者,这一过程会先后经历调用后(PostInvoke)、用户信息处理 (User)、策略实施(Policy)、传输(Transport)这四个阶段。每一个阶段都是一个可控点,通过编写并注册一些相应的Handler就 可以实施一些额外处理逻辑,如审计、SOAP消息加密、签名、压缩等。将POJO Bean导出为Web Service通过XFire为Spring提供的服务导出器可以轻松地将POJO导出为标准的Web Service,此外,XFire还允许我们使用JSR 181注解对POJO进行标注,无需使用XML配置就可以导出为Web Service,各种复杂的转换细节被巧妙地隐藏在XFire之中。XFire可以很好的集成到Spring中,Spring的代码已经做了这方面的集成。首先,我们先创建我们的Web服务,采用接口和实现类的方式:接口MathService.java:1. package com.kuaff.xfire.samples;. public interface MathService6.7. 8.9. public long add(int p1, int p2);10.11. 实现类:1. package com.kuaff.xfire.samples;. public class MathServiceImpl implements MathService6.7. 8.9. public long add(int p1, int p2)10.11. 12.13. return p1 + p2;14.15. 16.17. META-INF/xfire/service.xml文件可以省略了,因为web服务的定义在xfire-servlet.xml中可以找到。下面要做的工具就是配置了。在WEB-INF文件夹下创建applicationContext.xml文件,这是Spring的配置文件,如果你使用其他的Spring配置文件,可以将下面的bean添加到那个配置文件中:1. 2. 3. 4. 5. 定义了mathBean,这个Bean就是我们的实现类,当然你也可以在这个文件中定义其他的需要Spring管理的bean。在WEB-INF文件夹下创建xfire-servlet.xml文件,根据Spring规范,这个文件名起做xfire-servlet.xml,其中xfire是web.xml配置的DispatcherServlet的名称:1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. com.kuaff.xfire.samples.MathService25. 26. 27. 这个文件的上半部分将MathService这个URL和math这个bean联系在一起。下半部分定义了Web服务的bean和服务接口。其中mathBean是我们在applicationContext.xml中配置的那个Bean。最后一步就是修改web.xml文件:1. 2. 5. 6. 7. contextConfigLocation8. /WEB-INF/applicationContext.xml9. classpath:org/codehaus/xfire/spring/xfire.xml10. 11. 12. log4jConfigLocation13. /WEB-INF/perties14. 15. 16. org.springframework.web.util.Log4jConfigListener17. 18. 19. org.springframework.web.context.ContextLoaderListener20. 21. xfire22. org.springframework.web.servlet.DispatcherServlet23. 24. 25. xfire26. /*27. 28. 需要注意这个文件的三个部分:1 在定义contextConfigLocation参数时一定要加上classpath:org/codehaus/xfire/spring/xfire.xml。2 定义listener: org.springframework.web.context.ContextLoaderListener3 定义DispatcherServlet: xfire这样,你就可以访问http:/localhost:8080/xfire/MathService来调用这个Web服务,也可以通过网址http:/localhost:8080/xfire/MathService?wsdl来查看wsdl文档。spring集成xfire-通过org.codehaus.xfire.spring.XFireSpringServlet集成 Spring集成XFire开发WebServiceWeb Service-简介 Published by admin on 03月 28, 2010 找了好几种spring集成xfire的资料,觉得最简单的一种就是通过org.codehaus.xfire.spring.XFireSpringServlet 接收来发布webservices .说它简单是因为都是用的 spring 和xfire 提供的类和文件 .具体过程:服务器端:1,首先配置 web.xml 文件: contextConfigLocation /WEB-INF/applicationContext.xml,classpath:org/codehaus/xfire/spring/xfire.xml org.springframework.web.context.ContextLoaderListener xfire org.codehaus.xfire.spring.XFireSpringServlet xfire /services/* 告知启动后交给spring来管理 和 /services/* 交给XFireSpringServlet来处理.2,完成接口和实现类.package com.spring.ws;public interface IMathServer public int add(int x, int y);package com.spring.ws;public class MathServerImpl implements IMathServer public int add(in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025北京大兴区榆垡镇中心卫生院招聘临时辅助用工考前自测高频考点模拟试题及答案详解(易错题)
- 安全培训效率课件
- Glycoisolithocholanoic-acid-生命科学试剂-MCE
- Glucoraphanin-sodium-d5-生命科学试剂-MCE
- 2025广东广州市中山大学孙逸仙纪念医院超声科医教研岗位招聘模拟试卷及答案详解(名师系列)
- 2025广东深圳市九洲电器有限公司关IQC招聘1人模拟试卷及答案详解(网校专用)
- 2025广东惠州龙门县教育局招聘教师80人考前自测高频考点模拟试题附答案详解(典型题)
- 2025河南许昌市建安区招聘公益性岗位人员13人模拟试卷及1套参考答案详解
- 2025广西柳州市城中区委社会工作部招聘专职化城市社区工作者5人模拟试卷及答案详解(有一套)
- 项目管理进度跟踪表标准化流程控制
- 移动专线故障培训课件
- 2025-2030中国完全同态加密行业市场发展趋势与前景展望战略研究报告
- 濒危野生动植物种国际贸易公约(附录一二三)
- 代采代销合同范本
- DB3715-T 19-2022 桑黄栽培技术规程
- 纪录片观念与历史知到智慧树章节测试课后答案2024年秋云南艺术学院
- 叉车安全协议合同范本
- 2023版国家关于轻伤、重伤鉴定新标准(人体损伤程度鉴定标准)
- 加油站承包合同范本
- 中医诊断学舌诊介绍
- 《挥发性有机污染地块现场分析检测技术验证评价指南》
评论
0/150
提交评论