服务器端:

第一: 配置环境

创建一个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. interview review

    缘起: 因为最近要找工作,自己总结了一下面试的注意事项. 1自我介绍方法 1.基本情况:姓名.年龄.学历.家庭与理想. 简单明了,不要啰嗦. 2.学习能力:专业知识.勤奋好学. 用事实说明学习能力不错 ...

  2. 算法训练 A+B Problem

     算法训练 A+B Problem   时间限制:1.0s   内存限制:512.0MB      问题描述 输入A,B. 输出A+B. 输入格式 输入包含两个整数A,B,用一个空格分隔. 输出格式 ...

  3. ajax处理回调函数,用ajax向后台发送数据

    这是我的后台返回给前台的数据: 处理后台返回的数据有一下两种方式: function sethouse_housing_pattern(housing_pattern){ var str=[]; va ...

  4. [LeetCode]题解(python):092 Reverse Linked List II

    题目来源 https://leetcode.com/problems/reverse-linked-list-ii/ Reverse a linked list from position m to  ...

  5. 【指标测试】影响IOPS的几个重要因素

    1. 读写方式 顺序读写的IOPS要比随机读写的IOPS高.100%顺序读写来讲,顺序读要高于顺序写.100%随机读写来讲,随机读要高于随机写.小块读写的IOPS要比大块读写高.需要根据实际的应用程序 ...

  6. day04-java-循环结构(while、do-while、for)

    循环结构(while.do-while.for) 任何复杂的程序逻辑都可以通过三种结构来实现:1)顺序结构:从上往下逐行执行,每句必走2)分支结构:有条件的执行某语句一次,并非每句必走3)循环结构:有 ...

  7. 常用jq选择器和遍历的使用

    1.jq的选择器,常用有哪些? class id > ~ ul li a 2.遍历的使用(在使用用遍历节点时,我们的注意遍历在不传递参数(也就是传参),代表的是传递局部全局,也就是"* ...

  8. iOS:访问地址薄

    地址簿的访问 介绍: 地址簿(Address Book)是一个共享的联系人信息数据库.任何iOS应用程序都可以使用.通过提供常用联系人信息,而不是让每一个应用程序管理独立的联系人列表,可改善用户体验. ...

  9. vsftp 定时任务同步

    yum install db4-utils.x86_64 -y yum install ftp vsftp lftp 在客户端 和服务端都安装vsftp服务 并配置虚拟账号 上传包内文件 [root@ ...

  10. RFS一些基本概念

    1. Project.Directory.TestSuit.TestCase.Resource的区别?   Project:项目名称   Directory:对项目进行分层   TestSuit:测试 ...