服务器端:

第一: 配置环境

创建一个Web Project,将XFire自己的包及其XFire依赖的jar包(6个jar包)全部导入到classpath下,方法是,只需将jar包粘贴在WebRoot->WEB-INF->lib下即可。

第二: 创建一个interface和interface的实现类。使用 Web 服务接口和 Web 服务实现类来完成 POJO 的 Web 服务发布

第三: 修改web.xml文件,将XFireServlet整合到Tomcat服务器中

在<web-app>中加入一下xml,这样就是说来自/servlet/XFireServlet/*和/services/*的所有的请求都交由org.codehaus.xfire.transport.http.XFireConfigurableServlet来截获,并且通过XFire自己的机制来处理[xhtml] view plaincopy

  1. <servlet>
  2. <servlet-name>XFireServlet</servlet-name>
  3. <servlet-class>
  4. org.codehaus.xfire.transport.http.XFireConfigurableServlet
  5. </servlet-class>
  6. </servlet>
  7. <servlet-mapping>
  8. <servlet-name>XFireServlet</servlet-name>
  9. <url-pattern>/servlet/XFireServlet/*</url-pattern>
  10. 10.  </servlet-mapping>
  11. 11.  <servlet-mapping>
  12. 12.   <servlet-name>XFireServlet</servlet-name>
  13. 13.   <url-pattern>/services/*</url-pattern>
  14. 14.  </servlet-mapping>

第四:向外界暴露服务

在src目录下建立一个文件夹叫做META-INF,再在其下建立一个xfire文件夹,在xfire文件夹中创建一个services.xml文件,内容如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://xfire.codehaus.org/config/1.0">
<service>
 <!-- 向外界暴露的服务的名字 -->
 <name> IWsService</name>
 <!-- 接口类 -->
 <serviceClass> IWsService</serviceClass>
 <!-- 接口实现类 -->
 <implementationClass> WsServiceImpl</implementationClass>
</service></beans>

客户端开发:通过服务端提供的接口类进行调用

第一:将XFire自己的包及其XFire依赖的jar包(6个jar包)全部导入到classpath下

第二:开发客户端

// 参数声明

private static Service service = null;

private static XFireProxyFactory factory = null;

private static IWsService iws = null;

private static String url = "http://192.168.5.163:8081/fmws/services/WsService";

// 根据与服务器端相同的接口创建service

service = new ObjectServiceFactory().create(IWsService.class);

// 用代理工厂创建接口类型的对象

factory = new XFireProxyFactory(XFireFactory.newInstance().getXFire());

//远程调用代理service

iws = (IWsService)factory.create(serviceurl);

深入了解webservice_开发实战篇的更多相关文章

  1. 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇)

    系列文章 手牵手,使用uni-app从零开发一款视频小程序 (系列上 准备工作篇) 手牵手,使用uni-app从零开发一款视频小程序 (系列下 开发实战篇) 扫码体验,先睹为快 可以扫描下微信小程序的 ...

  2. iOS开发——开发实战篇&版本控制SVN和Git使用详解

     版本控制SVN和Git使用详解     公司的实际开发中,在天朝使用较多的还是SVN,因为SVN是集中式的,在天朝上班你们都懂的!     -----------------svn--------- ...

  3. iOS开发——实战篇Swift篇&UItableView结合网络请求,多线程,数据解析,MVC实战

    UItableView结合网络请求,多线程,数据解析,MVC实战 学了这么久的swift都没有做过什么东西,今天就以自己的一个小小的联系,讲一下,怎么使用swift在实战中应用MVC,并且结合后面的高 ...

  4. Flutter完整开发实战详解

    Flutter完整开发实战详解(一.Dart语言和Flutter基础) Flutter完整开发实战详解(二. 快速开发实战篇) Flutter完整开发实战详解(三. 打包与填坑篇)

  5. HTML5 Canvas游戏开发实战 PDF扫描版

    HTML5 Canvas游戏开发实战主要讲解使用HTML5 Canvas来开发和设计各类常见游戏的思路和技巧,在介绍HTML5 Canvas相关特性的同时,还通过游戏开发实例深入剖析了其内在原理,让读 ...

  6. 《微信小程序商城开发实战》笔者的新书,欢迎各位粉丝上京东购买

    作者图书京东链接,请点击------>>>    **微信小程序商城开发实战** 附京东真实评价截图: 编辑推荐 在当今移动互联网大潮中,微信应用凭借其庞大的用户基数和极强的用户黏性 ...

  7. 基于DDD的微服务设计和开发实战

    你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴 ...

  8. 驱动领域DDD的微服务设计和开发实战

    你是否还在为微服务应该拆多小而争论不休?到底如何才能设计出收放自如的微服务?怎样才能保证业务领域模型与代码模型的一致性?或许本文能帮你找到答案. 本文是基于 DDD 的微服务设计和开发实战篇,通过借鉴 ...

  9. 第九篇 :微信公众平台开发实战Java版之如何实现自定义分享内容

    第一部分:微信JS-SDK介绍 微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包. 通过使用微信JS-SDK,网页开发者可借助微信高效地使用拍照.选图.语音.位置等手机系统 ...

随机推荐

  1. 转帖:解决jquery.js在myeclipse中报错的问题

    转载地址:http://tieba.baidu.com/p/1993753087 从官方下载的jquery.js在myeclipse始终用个大大的红叉,看着很不爽,如何解决呢:jquery.js在my ...

  2. sql中的行转列和列转行的问题

    sql中的行转列和列转行的问题 这是一个常见的问题,也是一个考的问题 1.行转列的问题  简单实例 CREATE TABLE #T ( MON1 INT, MON2 INT, MON3 INT ) G ...

  3. JS-JQ实现页面滚动时元素智能定位(顶部-其他部位)

      先看效果:     阅读前提:充分理解div的三种定位方式:浮动,相对定位,绝对定位 方法一(顶部)      原理:直接使用css 进行控制:缺点:不兼容ie6-:      实现:positi ...

  4. In App Purchase Statuses

    In App Purchase StatusesThe following are the available states that can be assigned to your in app p ...

  5. Android SnapHelper

    转载请注明出处:http://blog.csdn.net/crazy1235/article/details/53386286 SnapHelper 是 Android Support Library ...

  6. 滑动关闭activity

    // 手指上下滑动时的最小速度 private static final int YSPEED_MIN = 1000; // 手指向右滑动时的最小距离 private static final int ...

  7. bootstrap学习之二-组件

    一.bootstrap字体图标 以span的形式出现,通常可以用于一个button或者其他元素的内文本, <span class="glyphicon glyphicon-sort-b ...

  8. new操作符做了什么??

    在javascript中,new操作符随处可见,我讲一下我自己对new操作符的理解... 构造函数无返回值 //测试代码 function Foo(name) { var age = 20; this ...

  9. iOS符号表

    https://docs.bugtags.com/zh/symbols/ios/find.html 发红包的限制 1.发送频率规则 ◆ 每分钟发送红包数量不得超过1800个: ◆ 同一个商户号,每分钟 ...

  10. IIS 相关

    Restart IIS: run "iisreset" command check port usage: netstat -ano How to set up SSL in II ...