当在 java 中无法发现 wsdl 时,使用 soap web 服务的推荐方法是什么

What is the recommended way to consume a soap web service when wsdl is not discoverable in java

到目前为止我们发现access/consume soap web服务如下

  1. 从 wsdl 文件生成客户端(附加 xsd)
  2. 使用 soap 主体 (HttpUrlConnection) 的简单 http post 调用
  3. 使用 SAAJ(创建带有子元素的肥皂主体)

对于生成的客户端(第 1 个),如果可以从 url 中发现 wsdl,它就可以工作。但 如果无法从 url.

中发现 wsdl,它将失败

现在我的问题是,是否始终建议使用 2 号或 3 号方式使用 soap Web 服务(其中 wsdl 不可发现)?或者还有其他灵活的解决方案吗?

如果您使用的是 SpringWS,那么您可以使用不可发现的 wsdl。 详情请查看下方 link :

InaccessibleWSDLException error from SOAP generated client in JAVA

这种方法的优点是您不必准备请求,而是可以使用请求和响应对象。