XFire + Spring构建Web Services服务器端(二)

Xfire+Spring构建WebService服务器和客户端 Xfire简介 XFire是新一代的Java WebService引擎,XFire使得在JavaEE应用中发布Web服务变得轻而易举。和其他Web服务引擎相比,XFire的配置非常简单,可以非常容易地和Spring集成,它使得Java开发人员终于可以获得和.Net开发人员一样的开发效率。   XFire是codeHaus组织提供的一个开源框架,它构建了POJO和SOA之间的桥... 阅读详情

本篇介绍XFire + Spring构建Web Services服务器端的第二种办法。

两种办法的不同之处在于:

第一种办法的ServletClass是org.codehaus.xfire.spring.XFireSpringServlet,这种办法服务的声明在Spring配置文件中完成,即applicationContext.xml文件中。

第二种办法的ServletClass是org.springframework.web.servlet.DispatcherServlet,这种办法需要另外在WEB-INF文件夹下新建一个XFireServlet-servlet.xml,服务声明在该文件中(和applicationContext.xml,web.xml在同一目录下),这里的XFireServlet是web.xml文件中servlet的名字,需要保持一致。


1、web.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
	xmlns="http://java.sun.com/xml/ns/javaee" 
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
	xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
	http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
  
	<context-param>  
        <param-name>contextConfigLocation</param-name>  
        <param-value>  
            /WEB-INF/XFireServlet-servlet.xml,  
            /WEB-INF/applicationContext.xml  
       </param-value>  
    </context-param>  
  
    <listener>  
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>  
    </listener>

	<servlet>  
        <servlet-name>XFireServlet</servlet-name>  
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</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>

<servlet>中的servlet-name可自己设定,但是{servlet-name}-servlet必须为新建xml文件的名字,如程序中servlet-name为XFireServlet,则新建的xml文件的名字为:XFireServlet-servlet.xml,而且该文件的路径需要加入<context-param>下面的<param-value>中。(这个地方见到有的例子并没有加入这个文件的路径,而是:classpath:org/codehaus/xfire/spring/xfire.xml,这点我没写例子实践。)

2、接口类和实现类

 package  webservice;
 
 /** 
  *HelloWorld的接口类.
   */ 
 public interface HelloWorld  {
      /** 
      *对名字为name的人打招呼.
      *@paramname名字
      *@return返回打招呼的字符串
       */ 
     String sayHelloWorld(String name);
 } 
 我们还需要建立一个对应的实现类,来实现sayHelloWorld的功能,该实现类即为HelloWorldImpl.java。该类的详细内容如下:
 package  webservice;
 /** 
  *HelloWorld的实现类.
   */ 
 public class HelloWorldImpl  implements  HelloWorld  {
      public  String sayHelloWorld(String name)  {
        String helloWorld  =   " hello, "   +  name;
         return  helloWorld;
     } 
 } 

这个没什么特别的

3、配置applicationContext.xml文件

<? xml version="1.0" encoding="UTF-8" ?> 
 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
     "http://www.springframework.org/dtd/spring-beans.dtd" > 
 < beans > 
      < bean  id ="HelloWorldBean"  class ="webservice.HelloWorldImpl" /> 
 </ beans >

4、配置服务(XFireServlet-servlet.xml)

 <? xml version="1.0" encoding="UTF-8" ?> 
 <! DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN"
     "http://www.springframework.org/dtd/spring-beans.dtd" > 
 < beans > 
      <!--  引入XFire预配置信息  --> 
      < import  resource ="classpath:org/codehaus/xfire/spring/xfire.xml"   /> 
      <! —定义访问的url-- > 
      < bean  class ="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping" > 
         < property  name ="urlMap" >              
             < map >                  
                < entry  key ="/HelloWorldService.ws" >                   
                    < ref  bean ="HelloWorldService"   />                  
                </ entry >              
             </ map >          
         </ property >      
      </ bean >      
 
      <!--  使用XFire导出器  --> 
      < bean  id ="baseWebService"  class ="org.codehaus.xfire.spring.remoting.XFireExporter"  lazy-init ="false"  abstract ="true" > 
         <!--  引用xfire.xml中定义的工厂  --> 
         < property  name ="serviceFactory"  ref ="xfire.serviceFactory"   /> 
         <!--  引用xfire.xml中的xfire实例  --> 
         < property  name ="xfire"  ref ="xfire"   /> 
      </ bean > 
      < bean  id ="HelloWorldService"  parent ="baseWebService" > 
         <!--  业务服务bean  --> 
         < property  name ="serviceBean"  ref ="HelloWorldBean"   /> 
         <!--  业务服务bean的窄接口类  --> 
         < property  name ="serviceClass"  value ="webservice.HelloWorld"   /> 
      </ bean > 
 </ beans > 

如果有多个服务,添加多个<entry></entry>即可


配置完成在浏览器中输入http://localhost:8080/webservice_helloworld/HelloWorldService.ws?wsdl 测试一下是否正常

SpringMVC+xfire1.2.6(webService) 解决SpringMVC集成xfire 1、在Springmvc中放入xfire1.2.6jar,按照注解的方式配置后,springMVC启动不会扫描collection,后面修改了配置方式,web.xml使用org.codehaus.xfire.transport.http.XFireConfigurableServlet,xfire/services.xml配合完成webservice发布于xx.do功能共存! 立即下载

相关推荐

用STM32定时器PWM高级功能驱动步进电机:F103C8T6+TB6600实战教程

本文详细介绍了如何利用STM32F103C8T6微控制器的定时器PWM高级功能驱动TB6600步进电机驱动器,实现高效、灵活的运动控制方案。通过硬件配置、PWM参数计算、运动控制算法及TB6600高级功能应用的全面解析,为工业自动化和精密控制领域提供了实用的技术参考。

game4的博客 186

maven+springMVC+xfire

转载自:http://blog.youkuaiyun.com/moliqin/article/details/6897581 1. pom.xml     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">     4.0.0     xf

ruanhao1203的专栏 967

WebRTC TURN协议初识及turnserver实践

但是TURN协议对服务器有很高的依赖,服务器在带宽和集群上有很大的压力,所以TURN协议通常是当作ICE协议中的一部分来使用。ChannelData message不使用STUN头部,而使用一个4字节的头部,包含了一个称之为信道号的值(channel number),每一个使用中的信道号都与一个特定的peer绑定,即作为对等端地址的一个记号。该relay地址是个公网地址,可以看作是客户端A在公网上的一个代理,任何想要联系A的客户端,只要将数据发送到A的relay地址就可以了。

yinshipin007的博客 566

XFire + Spring构建Web Services服务器端(一)

Spring是目前最流行的JavaEE Framework,但是使用Spring的Spring-WS开发WebService却十分繁琐。XFire是一个简化WebService开发的开源项目,通过Spring和XFire的结合可以大大简化基于Spring Framework的应用中的WebService开发。下面介绍的是一种比较简单实用的开发方式。 XFire+Spring构建web s...

iteye_20606的博客 131

LabVIEW与MySQL实时数据存储:传感器采集与数据库同步实践

本文详细介绍了如何将LabVIEW与MySQL结合,实现传感器数据的实时采集与高效存储。通过设计合理的数据库表结构、配置LabVIEW数据库连接工具包,并编写核心的采集与存储VI,构建了稳定可靠的数据链路。文章重点分享了批量插入、连接管理、时间同步等关键优化技巧与避坑指南,帮助工程师应对工业监控、环境监测等场景下的实时数据同步挑战。

weixin_29281915的博客 261

COMSOL相场法模拟枝晶生长:溶质偏析模型搭建全流程

凝固过程中枝晶形貌与溶质偏析直接决定铸件微观组织与力学性能,是材料加工领域长期关注的核心问题。相场法凭借弥散界面描述天然处理拓扑演化,成为模拟枝晶生长的主流数值方法,而通用有限元平台COMSOL为自定义偏微分方程求解提供了高度灵活的实现路径。从热力学驱动、界面各向异性到溶质再分配,模型需准确耦合相场方程与浓度扩散方程,才能在二元合金凝固模拟中还原真实枝晶尖端速度、二次臂形貌及界面富集行为。围绕溶质偏析这一关键变量,建模过程涉及无量纲化参数标定、反溶质截留项配置、分离式求解器与网格各向异性控制等核心细节。该方

weixin_30402231的博客 308

在原springMVC的web项目中添加webservice(用的是xfire)

框架是spring MVC + weblogic12c + jdk1.7 数据库是 oracle ,用的是jdk自带的webservice部署到tomcat是好的···weblogic12c服务器上之后启动报错 ···more than one instance```这样的错误,查阅相关资料说是weblogic自身的bug需要下载补丁,我去官网下载呢···收费的···并且没看到weblogic12.1.1.0的补丁,webservice就在此换成了Xfire框架了···

陈鑫霖(Java) 1万+

SAP 财务BAPI_ACC_DOCUMENT_POST批导的税务tax

最近遇到了关于SAP财务凭证批导要bapi:BAPI_ACC_DOCUMENT_POST增加税的功能要求,查阅了一众文献发现都不尽如人意,所以想着自己写一个趟过的雷吧。 一般前台sap的凭证是有自动计算税码的勾选框的,但是bapi却并没有这个字段。 实际操作过程中1.可以定义一个税额的结构,参考bapiactx09 2.在会计分录上传如果需要增加税码的时候,譬如总账gl,需要对应tax_code 3.通过CALCULATE_TAX_FROM_GROSSAMOUNT 计算出税额和acct_k...

qq_35640448的博客 3185

xfire发布webservice

第一步:编写xfire的服务器端首先需要xfire的jar文件,可以到官方网站下载 ,同时根据自己项目的需要下载oracle的jar文件,springjar文件和struts的jar文件。你可以直接访问这个地址下载:http://eft21.download.youkuaiyun.com/然后编写web.xml文件在里面配置xfire,spring等      PUBLIC "-//Sun M

eft21的专栏 2434

Zotero搭配CNKI.js插件:一键批量下载知网文献的完整教程(附常见问题解决)

本文提供Zotero搭配CNKI.js插件实现知网文献批量下载的完整教程。详细介绍了从环境准备、插件安装到实战操作的全流程,并针对常见问题提供解决方案,旨在帮助科研人员高效构建自动化文献管理工作流,显著提升文献收集与整理效率。

e4f5g6h7的博客 1200

WiFi偏门协议(四):增强的传输机制802.11aa

区分Unicast和Multicast的优先级,以及设定不同的重传次数,以细化EDCA机制。 SCS(StreamClassification Service) 如上图,在VI,VO内各自又增加了一个queue, 对应不同的MAC header。VI和VO内的两个queue可以分别对应UC和MC。这样就提供了同一个AC内的更细粒度的优先级区分。当然还可以使用Drop Eligibility Indication子域来区分不同的重传次数。 改善Multicast数据传...

reekyli的专栏 1790

Web Service修炼之一XFire入门

Web Service修炼之一XFire入门 一、XFire知识 1、Web Service架构 web Service是独立的、模块化的应用,能够通过因特网来描述、发布、定位以及调用。在Web Service的体系架构中包括三个角色:服务提供者(Service Provider)、服务请求者(Service Requestor)、服务注册器(Service Registry)。角色间主

尹若轩 1252

突破Cloudflare 5秒盾!Python爬虫+GPT分析JS混淆实战(附完整代码)

这篇文章的核心观点其实不是“怎么过CF”,而是如何把LLM嵌入逆向工程的工作流。AI不会取代逆向工程师,但它正在重新定义逆向工程师的工作方式。过去我们80%的时间花在读懂混淆代码上,现在这部分可以外包给GPT,我们把精力集中在架构判断、异常处理和系统设计这些真正需要人类直觉的地方。技术会变,CF的防护会升级,GPT的能力也会迭代。但这种“人机协作拆解复杂问题”的方法论,比任何具体的绕过技巧都更有长期价值。参考资料Cloudflare Bot Management官方文档。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 535

WebSerice学习笔记2——XFire基础

1.XFire是codehaus推出的下一代的java SOAP框架,通过提供的简单的API和支持标准协议,可以方面地开发webservice程序。XFire最大的特点就是支持将POJO通过非常简单的方式发布为WebService,同时还拥有很高的性能。2.XFire将 POJO 发布成 Web 服务的基本步骤:(1).创建 Web 服务接口,声明该 Web 服务对外暴露的接口;(2).创建 Web 服务实现类,为 Web 服务接口提供实现;(3).修改 XFire 框架的服务发布文件 ---- servi

Tony Chen的专栏 7214

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

XFire 架构的 WebService 开发

1.引言 1.1.  目的 Java 开发WebService 的开发有多种,而且没有特别是没有一个统一的标准实现,XFire,Axis2,CXF等;本文档主要是讲使用XFire来实习WebService的开发。 1、为了避免在以后编写WebService时,研发人员的重复工作。 2、为了避免不必要的矛盾和冲突,减少研发、维护成本。   1.2.  范围 适合使用We...

yangpanwww的博客 300

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

WebService介绍(WebService基础知识、XFire、CXF(基于XFire和Celtix项目整合而来,与Spring融合好)、AXIS1、AXIS2(有AXIS1转换而来,有Java)

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基础

ajian005的专栏 3525

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

初识XFire发布pojo webservice

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

JAMES.TANG 137

服务器端error:[META-INF/xfire/services.xml]挀愀渀渀漀琀戀攀漀瀀攀渀攀搀

严重: Allocate exception for servlet XFireServletjava.io.FileNotFoundException: class path resource [META-INF/xfire/services.xml] cannot be opened because it does not existat org.springframew...

weixin_33910759的博客 131

cxf开发webservice服务端怎么返回固定的报文格式_Spring boot webservice怎么玩? 第277篇...

相关历史文章(阅读本文之前,您可能需要先看下之前的系列?)WebService SOAP概述 - 第275篇WSDL是什么“Lese” - 第276篇一、前言 当官不为民做主,不如回家卖红薯;与其调用别人的服务,不如调用自己的服务。 看别人发布的WSDL服务是不是自己也心痒痒的,赶紧吧,3号技师已经等你好久了。 通过本文你将知道:有什么常见的技师手法,...

weixin_39721853的博客 636

tomcat发布的webservice怎么连接_Spring boot webservice怎么玩? 第277篇

相关历史文章(阅读本文之前,您可能需要先看下之前的系列?)WebService SOAP概述 - 第275篇WSDL是什么“Lese” - 第276篇一、前言 当官不为民做主,不如回家卖红薯;与其调用别人的服务,不如调用自己的服务。 看别人发布的WSDL服务是不是自己也心痒痒的,赶紧吧,3号技师已经等你好久了。 通过本文你将知道:有什么常见的技师手法,...

weixin_39932611的博客 254

几种流行Webservice框架性能对比

转载 http://www.cnblogs.com/ruiati/p/6640287.html几种流行Webservice框架性能对比(转载) 1摘要 开发webservice应用程序中离不开框架的支持,当open-open网站列举的就有很多种,这对于开发者如何选择带来一定的疑惑。性能Webservice的关键要素,不同的框架性能上存在较大差异,而当前在官方网站、网络资料中可以方便的找到各自框...

wanleidejuewu的博客 504

webservice接口开发经历

1. 复习准备 1.1. Schema约束 几个重要知识: namespace 相当于schema文件的id targetNamespace属性 用来指定schema文件的namespace的值 xmlns属性 引入一个约束, 它的值是一个schema文件的namespace值 schemaLocation属性 用来指定引入的sch...

2045

java面试题(96~125)《中》

这部分主要是与Java Web和Web Service相关的面试题。96、阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet。97、Servlet接口中有哪些方法? 答:Servlet接口定义了5个方法,其中前三个方法与Servlet生命周期相关: - void init(

ywl470812087的博客 467

Spring AI + GPT-5.5 + Ollama 配置教程:Base URL、超时与流式调用

由于不同 Spring AI、Spring Boot 小版本之间仍可能存在差异,创建项目时应检查 Spring Initializr、Spring AI BOM 和官方兼容矩阵,不要直接复制旧教程中的 Starter 名称和版本号。多人项目最好隔离不同客户端,并在脱敏前提下记录最终 URL、状态码、请求耗时、请求 ID 和模型 ID。Spring AI 接入模型 API,至少要同时确认 Starter、Base URL、请求路径、API Key、模型 ID、连接超时、读取超时和流式客户端这 8 项。

2601_95893075的博客 225
上一篇: XFire + Spring构建Web Services服务器端(一)
下一篇: XFire构建web service客户端的五种方式
java_4_ever
博客等级 码龄16年 8粉丝 29原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值