我是WireMock的创造者.

我最近使用WireMock在客户端项目上模拟了SOAP接口的集合,所以我可以证明它是可能的.至于它是否比SOAP UI更好或更差,我会说有一些明确的好处,但有一些权衡.一个主要的好处是相对容易部署和编程访问/配置,以及对HTTPS和低级故障注入等方面的支持.但是,您需要做更多的工作来解析和生成SOAP有效负载 – 它不会像SOAP UI那样从WSDL生成代码/存根.

我的经验是像SOAP UI这样的工具可以让你更快地开始,但是从长远来看,当你的测试套件变得越来越琐碎时,往往会导致更高的维护成本.

要依次解决您的观点:

1)如果您希望您的模拟在某个服务器上运行,最简单的方法是按照您的描述运行独立的JAR.我建议不要尝试将它部署到容器中 – 这个选项实际上只存在于没有其他选择的情况下.

但是,如果您只想运行集成测试或完全自包含的功能测试,我建议使用JUnit规则.我要说,如果a)你将其他已部署的系统插入其中,或者b)你是从非JVM语言中使用它,那么在一个专用的进程中运行它是一个好主意.

2)您需要以3种方式之一配置它:1)Java API,2)基于HTTP的JSON,或3)JSON文件. 3)可能与您习惯使用SOAP UI的方式最接近.

3)对于使用JSON和Java的大量存根示例,请参见http://wiremock.org/stubbing.html.由于SOAP倾向于绑定到固定端点URL,因此您可能需要urlEqualTo(…).当我过去使用SOAP时,我倾向于在整个请求体上进行XML匹配(参见http://wiremock.org/stubbing.html#xml-body-matching).我建议投资编写一些Java构建器来发出所需的请求和响应主体XML.

4)Mock Server和Betamax都是WireMock的成熟替代品,但AFAIK它们不提供任何更明确的SOAP支持.

mockwebserver java_在Java中使用WireMock和SOAP Web服务相关推荐

  1. Java中利用socket实现简单的服务端与客户端的通信(中级)——实现任意双向通信

    本文计划采用socket实现客户端和服务端的任意双向通信,即客户端可以随时给服务端发消息,服务端也可以随时给客户端发消息,最终结果就是一个类似与QQ的聊天软件的功能. 以下代码可以直接拷贝到Eclip ...

  2. Java中利用socket实现简单的服务端与客户端的通信(基础级)

    在上一篇文章中,简单的介绍了java中入门级的socket编程,简单的实现了客户端像服务器端发送数据,服务器端将数据接收并显示在控制台,没有涉及多线程.上一篇文章的链接:Java中利用socket实现 ...

  3. Java中常见的5种WEB服务器介绍

    Web服务器是运行及发布Web应用的容器,只有将开发的Web项目放置到该容器中,才能使网络中的所有用户通过浏览器进行访问.Java常用的Web服务器有哪些?本文将由小千给大家讲解. 开发Java We ...

  4. cloning java_深入浅出Java中的clone克隆方法,写得太棒了!

    作者:张纪刚 blog.csdn.net/zhangjg_blog/article/details/18369201/ 2019-03-24 10:33:04 Java中对象的创建 clone 顾名思 ...

  5. 遮掩java_关于java中的覆写、重载、隐藏、遮掩、遮蔽

    最近在重新学习java,发现了以前未发现的几个概念,从网上搜索了一些资料,现在整理下.对于我来说,以前只是知道java中的覆写 重载和隐藏,这次却发现还有遮掩和遮蔽这两个概念.下面是整理的一篇文章. ...

  6. 形式参数内存在哪java_深入浅出Java中JVM内存管理

    原标题:深入浅出Java中JVM内存管理 Java岗位面试,JVM是对程序员基本功考察,通常会问你对JVM了解吗?可以分几部分回答这个问题,首先JVM内存划分 | JVM垃圾回收的含义 | 有哪些GC ...

  7. groovy import java_在Java中调用Groovy方法的又一种方法:使用接口

    1.定义Java接口包含在Java中需要调用的Groovy方法 public interface IFoo { public Object run(Object foo); } 2.创建Groovy类 ...

  8. atomic java_在Java中添加@atomic操作

    atomic java 总览 原子操作如何在Java中工作,OpenJDK / Hotspot中是否存在可以转换为原子的当前替代方法. 反馈 在我以前的文章中, 对可变字段进行原子操作. 有几次指出, ...

  9. tlab java_浅析java中的TLAB

    好久,好久....没有更博客了.这一次利用闲暇时间,来扯一下关于JVM中的TLAB. 什么是TLAB?它是干什么的?咋们先抛开这个问题,一切的开始得从new对象到指针碰撞开始讲起. new对象与指针碰 ...

最新文章

  1. es安全组端口_从零开始在远程服务器(Linux)上搭建es,eshead和ik分词器
  2. IT英语2-编程词汇编程英语词汇
  3. python比较时间的最大值_时间戳的最大值
  4. 三探云原生全景图,这次聊聊运行时层
  5. stm32f429vref怎么接_STM32如何通过内部VREF得到实际的VDDA值
  6. androidannotations gradle Android Studio
  7. linux系统中如何安装qwt,在Linux上部署Qt及Qwt
  8. StrongShop跨境电商系统源码 | 支持多语言多货币
  9. fw313r手机登录_迅捷(FAST)fw313r路由器初始密码_登录密码是多少?-192路由网
  10. 强联通分量:Tarjan缩点
  11. Nature子刊 | 绘制植物叶际菌群互作图谱以建立基因型表型关系
  12. 使用Python进行数独求解(二)
  13. 开考!狮子,老虎,企鹅,技术圈的这些飞禽走兽你认识多少?
  14. CRC32 Hash PK Murmur Hash
  15. 应用调优常用技巧-線程池
  16. 【JVM】JVM系列
  17. 怎么能跳过苹果服务器降级系统,iPhone手机可以降级任意系统版本?大神有话说...
  18. volatile-内存屏障
  19. 如何理解java代理模式?
  20. Linux服务器tomcat正常启动,但是通过IP不能访问web

热门文章

  1. 输入一个日期,计算这个日期与 2018-03-12差多少天;
  2. (DT系列四)驱动加载中, 如何取得device tree中的属性
  3. ListView的Item点击事件(消息传递)
  4. 2010年过年左右时的艾米果
  5. 周报_2013第02周(2013/01/06-2013/01/12)
  6. IT软件创业之 -- 小软件项目也有风险、也会失败、也会损兵折将
  7. DELL R430服务器做raid5以及安装操作系统过程
  8. Python办公自动化(七)|自动更新不对称表格
  9. 快速搭建开发环境(Vs Code)
  10. 使用doc下的copy命令复制文件时,注意文件分割符