日前的工作接触到很多系统间的Webservice调用,这里想谈谈基于spring+xfire实现的webservice的客户端踩过的一些坑,需要测试关注的点。

xFire的配置项

在spring中实现ws的client的客户端还是相对比较容易的,只需要编写一个和webservice接口一致的接口类即可。在xml的配置中需要关注下面几个参数:

  • http.timeout : 响应超时,即服务端接收到ws请求,但在处理请求时,长时间没有返回,超时
  • http.connection.timeout : 连接超时,即和服务端建立连接的超时时间

xFire所发送消息体的过滤和编码

xfire调用时,如果请求参数中包含特殊的ascii字符(ascii码的0x00 ~ 0x1F)时,ws调用会失败。处理方法就是对请求参数进行过滤,剔除出这些控制字符。

基于发送消息体的另外一个考量就是i18N,发送的内容尝试着包含:半角、全角、双字节字符、三字节字符等。

xFire调用服务端失败处理

1. xfire调用异常后的重试

对于一些关键业务webservice调用失败可能会产生比较严重的后果,但xfire本身是没有重试机制的。现在的做法就是,如果xfire调用失败,catch做异常,将消息体插入一个重试任务表中,由调度任务稍后进行重试。

2. xfire调用异常,打印日志的脱敏

如果xfire调用失败,catch住异常后,通常会打印异常日志。如果涉及核心业务,从数据安全性角度考虑,需要关注在异常堆栈中是否会包含敏感信息(如信用卡卡号),异常日志打印需要过滤掉敏感信息。

xfire实现webservice客户端之测试关注点的更多相关文章

  1. MyEclipse下XFire开发Webservice实例

    XFire Java SOAP框架概述 (摘自:http://tech.it168.com/j/e/2006-10-28/200610281432707.shtml )     MyEclipse W ...

  2. Java调用WebService方法总结(6)--XFire调用WebService

    XFire是codeHaus组织提供的一个WebService开源框架,目前已被Apache的CXF所取代,已很少有人用了,这里简单记录下其调用WebService使用方法.官网现已不提供下载,可以到 ...

  3. 使用GSoap开发WebService客户端与服务端

    Gsoap 编译工具提供了一个SOAP/XML 关于C/C++ 语言的实现, 从而让C/C++语言开发web服务或客户端程序的工作变得轻松了很多. 用gsoap开发web service的大致思路 我 ...

  4. WebService客户端(以命令方式创建)

    以命令的方式生成WebService客户端: 创建一个Project项目,客户端项目名称WS_Client,在cmd界面进入JDK的bin目录,输入以下命令 完整格式: C:\Program File ...

  5. (三)使用CXF开发WebService客户端

    前面一讲开发了webservice服务器端接口,今天的话,我们来开发webservice客户端,让大家来体验下过程: 首先建一个Maven项目,项目名字,WS_Client: 然后我们要用CXF给我们 ...

  6. 根据wsdl文件,Java工程自动生成webservice客户端调用

    根据wsdl文件,Java工程自动生成webservice客户端调用 1,工具:带有webservice插件的myeclips 2,步骤: (1),新建一个Java工程:relationship (2 ...

  7. Xfire实现webservice时,对象传递规则及解析简析

    Xfire实现webservice,传递对象解析的话,要分两种情况处理:1.基本类型对象:2.复杂对象 其实,在客户端直接传递数组,如String[] int[]等这些无法通过配置具体类型来通知xfi ...

  8. Eclipse内嵌的webservice客户端

    概述 Eclipse内嵌的webservice客户端,可用于发起请求,查看结果,展示请求和响应的报文. 详情 在Java EE视图,可以看到内嵌的webservice客户端浏览器登陆按钮 点击打开浏览 ...

  9. XFire创建WebService实例应用

    [转自] http://clq9761.iteye.com/blog/1261963 XFire创建WebService实例应用 XFire使得在JavaEE应用中发布Web服务变得轻而易举.和其他W ...

随机推荐

  1. 非堵塞socket实现android手机与PC的文件传输

    项目须要是通过WIFI建立手机和PC的通信,然后自己定义一个简单的协议对要传输的文件进行校验,传输的文件是2张3M的图片,要求考虑网络中断情况处理. 我这里採用的是非堵塞socket来实现的,之前查过 ...

  2. Java基础知识强化之集合框架笔记57:Map集合之HashMap集合(HashMap<Student,String>)的案例

    1. HashMap集合(HashMap<Student,String>)的案例 HashMap<Student,String>键:Student      要求:如果两个对象 ...

  3. 在KALI LINUX中安装JAVA JDK

    1. 下载最新的JAVA JDK jdk-8u91-linux-x64 2. 解压缩文件并移动至/opt tar -xzvf jdk-8u91-linux-x64.tar.gz mv jdk1.8.0 ...

  4. Bash判断文件夹(目录)是否存在

    #!/bin/bash if [ -d DirName ]; then echo 'Dir exist' else echo 'Dir not exist' fi

  5. Spring AOP体系学习总结:

    二.Spring AOP体系学习总结: 要理解AOP整体的逻辑需要理解一下Advice,Pointcut,Advisor的概念以及他们的关系. Advice是为Spring Bean提供增强逻辑的接口 ...

  6. pc机安装centos6.5,提示sda必须有一个GPT磁盘标签处理

    1.在进入安装界面,也就出现图形界面时,对它命令首先创建gpt --按ctrl+alt+f2的组合键,然后进入命令行 --进行如下操作输入parted输入mklabel gpt /dev/sda在提示 ...

  7. PhotoShop常用快捷键(1)

    一.工具栏工具 移动工具 [V] 矩形.椭圆选框工具 [M] 套索.多边形套索.磁性套索 [L] 快速选择.魔棒工具[W] 裁剪工具 [C] 吸管.颜色取样器 [I] 修补.污点修复[J] 画笔工具 ...

  8. <>跟!=

    这两个是没有区别的,都是不等于

  9. MongoDB的安装和基本操作

    一.使用前的准备(windows下的安装)  1.下载 目前MongoDB的官网不知道问什么不能进行下载了,但是可以在MongoDB中文论坛进行下载, 地址如下:http://www.mongoing ...

  10. 转:Windows 8上强制Visual Studio以管理员身份运行

    Windows 8的一个既安全又蛋疼之处是UAC的行为被改变了.以往在Windows 7中,只要关闭了UAC,自己的帐号又是本机管理员组的,任何程序都会以管理员身份启动.然而,在Windows 8上, ...