使用弹簧框架消耗没有wsdl的SOAP web服务
问题描述:
我必须调用位于http://ip:port/ws的web服务,它没有wsdl
。使用弹簧框架消耗没有wsdl的SOAP web服务
我可以使用Spring框架的RestTemplate
发送HTTP POST
,并从服务获得答案作为原始输入。但是这有点烦人,这就是为什么我正在寻找正确的方式来使用这个Web服务而没有WSDL
。
有人可以提出一个'最佳实践'的方式来完成这项任务吗?
答
确实没有最佳实践,重新创建WSDL或至少XML Schema看起来像是您改进当前方法的唯一选择。
答
如果你真的很幸运,它会返回一些一致的XML,你可能会抛出一个XPath解析器来提取你需要的位。您可以从它返回的数据中找出XML模式(查找某个位置文档顶部的命名空间声明,并查看是否可以按照它所引用的URI),或者将数据放入一个在线文档中,如this one
我读过Spring WebserviceTemplate支持使用SAAJ API调用不使用WSDL的远程Web服务。但找不到任何教程/例子。 PS。我已阅读springws参考文档 – 0bj3ct