soap-ws Java开源框架,github上是这样解释的:
soap-ws ,A lightweight and easy-to-use Java library to handle SOAP on a purely XML level.
github列举了一些使用方法,地址:https://github.com/reficio/soap-ws。

在使用的过程中,需要通过wsdl地址获取到wsdl中定义的所有方法,也就是operation。wsdl中定义Operation的地方有2个:①portType节点;②binding节点。
一般来说,这2个节点的operation是完全一样的。不过通过SOAPUI访问wsdl,获取的是binding节点中的所有operation。如果2个节点的operation都一样获取哪个节点都可以。

1. 获取binding节点的所有operation

看了一下示例代码,
soap-ws是通过以下的方法获取的operation。
SoapOperation operation = builder.operation().soapAction("http://www.webserviceX.NET/ConversionRate").find();
上述方法必须要知道Action的定义,大部分wsld中的Operation都是没有定义action的。所以通过以上方法不行。
查看接口SoapBuilder,定义了获取operation的方法,获取的是binding节点的所有operation。
public interface SoapBuilder {List<SoapOperation> getOperations();}
那通过wsdl怎么用到接口SoapBuilder的getOperations()呢?
参考示例SoapBuilder builder = *wsdl.binding()*.localPart("CurrencyConvertorSoap").find();
类Wsdl中提供了获取所有binding的方法public List<QName> getBindings()
完整代码如下:

public static List<String> getBindingOperations(String wsdlUrl) {List<String> operationList = new ArrayList();List<SoapOperation> soapOperationList = new ArrayList();Wsdl parser = Wsdl.parse(wsdlUrl);List<QName> bindQnames = parser.getBindings();for (QName qName : bindQnames) {SoapBuilder soapBuilder = parser.binding().localPart(qName.getLocalPart()).find();soapOperationList.addAll(soapBuilder.getOperations());}for (SoapOperation soapOperation : soapOperationList) {operationList.add(soapOperation.getOperationName());}return operationList;
}

以获取天气为例,测试结果:
wsdlUrl = “http://www.webxml.com.cn/WebServices/WeatherWebService.asmx?wsdl“;

[getSupportCity, getSupportProvince, getSupportDataSet, getWeatherbyCityName, getWeatherbyCityNamePro, getSupportCity, getSupportProvince, getSupportDataSet, getWeatherbyCityName, getWeatherbyCityNamePro, getSupportCity, getSupportProvince, getSupportDataSet, getWeatherbyCityName, getWeatherbyCityNamePro, getSupportCity, getSupportProvince, getSupportDataSet, getWeatherbyCityName, getWeatherbyCityNamePro]

soap-ws 获取wsdl中所有方法 (一)相关推荐

  1. 【Groovy】MOP 元对象协议与元编程 ( 使用 Groovy 元编程进行函数拦截 | 动态拦截函数 | 动态获取 MetaClass 中的方法 | evaluate 方法执行Groovy脚本 )

    文章目录 一.基础示例 二.根据字符串动态获取 MetaClass 中的方法 二.使用 evaluate 执行字符串形式的 Groovy 脚本 二.完整代码示例 一.基础示例 定义类 Student ...

  2. controller中获取heard中参数方法

    在controller层获得参数方法具体实现如下: 获得当前HttpServletRequest对象 protected HttpServletRequest getRequest(){return ...

  3. C#/Java 调用WSDL接口及方法

    一.C#利用vs里面自带的"添加web引用"功能: 1.首先需要清楚WSDL的引用地址   如:http://www.webxml.com.cn/Webservices/Weath ...

  4. C# 调用WSDL接口及方法

    1.首先需要清楚WSDL的引用地址 如:http://XX.XX.4.146:8089/axis/services/getfileno?wsdl 上述地址的构造为 类名getfileno. 2.在.N ...

  5. 用JQuery中的Ajax方法获取web service等后台程序中的方法

    用JQuery中的Ajax方法获取web service等后台程序中的方法 1.准备需要被前台html页面调用的web Service,这里我们就用ws来代替了,代码如下: using System; ...

  6. JS获取URL中参数值(QueryString)的4种方法分享

    http://www.jb51.net/article/48942.htm JS获取URL中参数值(QueryString)的4种方法分享 作者: 字体:[增加 减小] 类型:转载 今天碰到要在一个页 ...

  7. 【转】Java中获取文件大小的正确方法

    [转]Java中获取文件大小的正确方法 本文出处:http://blog.csdn.net/chaijunkun/article/details/22387305,转载请注明.由于本人不定期会整理相关 ...

  8. java list 截取部分数据_Java List.subList()方法:获取列表中指定范围的子列表

    集合类中的 List.subList() 方法用于获取列表中指定范围的子列表,该列表支持原列表所支持的所有可选操作.返回列表中指定范围的子列表. 语法: subList(int fromIndex,i ...

  9. thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法)

    thinkphp模型中的获取器和修改器(根据字段名自动调用模型中的方法) 一.总结 记得看下面 1.获取器的作用是在获取数据的字段值后自动进行处理 2.修改器的作用是可以在数据赋值的时候自动进行转换处 ...

最新文章

  1. 原理+代码实战 | 双目视觉中的极线校正
  2. windows server 2008 R2 初试Hyper-V(一)
  3. 深度探讨 CrossFormer 如何解决跨尺度问题
  4. LeetCode每日一题 416. 分割等和子集
  5. JAVA面试常考系列六
  6. 读《数学之美》第四章 谈谈分词
  7. 10-Python入门学习-函数的对象与嵌套、名称空间与作用域、闭包函数
  8. iis绑定php程序应用池设定,什么是IIS应用程序池以及应用程序池详解
  9. 如何更好的使用大数据
  10. PB与各种数据库连接
  11. mysql 升级和降级
  12. 2017年c语言试卷及答案,2017年全国计算机c语言试题及答案
  13. SqlSessionFactoryBean
  14. 信息安全工程师(中级)—重要知识点总结
  15. [matlab数字图像处理3]打开一副低对比度图像,拉伸其图像对比度
  16. python内置函数系列之str(一)(持续更新)
  17. 将多个excel合并成一个包含多个sheet的excel
  18. TF卡座的工作原理,TF卡座的内部结构,详图,自弹式TF卡座的内部结构原来是这么回事
  19. BZOJ4416: [Shoi2013]阶乘字符串
  20. 定弘法师(钟茂森博士)的九大愿

热门文章

  1. 大二上---数据结构课程设计
  2. ibm服务器中文件存储设置,IBMv7000存储服务器双活配置流程
  3. vim的文件比较功能
  4. Emulator: emulator: INFO: QtLogger.cpp:68: Critical: Uncaught ReferenceError: $ is not defined (qrc:
  5. SOHO 企业网吧 路由器 智能QoS 3G MIFI
  6. 值得 .NET 开发者了解的15个特性
  7. WebRequest 类和 WebResponse 类
  8. Controller层各注解总结
  9. Java web框架
  10. apache atlas 官方安装