使用弹簧框架消耗没有wsdl的SOAP web服务

问题描述:

我必须调用位于http://ip:port/ws的web服务,它没有wsdl使用弹簧框架消耗没有wsdl的SOAP web服务

我可以使用Spring框架的RestTemplate发送HTTP POST,并从服务获得答案作为原始输入。但是这有点烦人,这就是为什么我正在寻找正确的方式来使用这个Web服务而没有WSDL

有人可以提出一个'最佳实践'的方式来完成这项任务吗?

确实没有最佳实践,重新创建WSDL或至少XML Schema看起来像是您改进当前方法的唯一选择。

+0

我读过Spring WebserviceTemplate支持使用SAAJ API调用不使用WSDL的远程Web服务。但找不到任何教程/例子。 PS。我已阅读springws参考文档 – 0bj3ct

如果你真的很幸运,它会返回一些一致的XML,你可能会抛出一个XPath解析器来提取你需要的位。您可以从它返回的数据中找出XML模式(查找某个位置文档顶部的命名空间声明,并查看是否可以按照它所引用的URI),或者将数据放入一个在线文档中,如this one