Web services 我应该如何补偿坏的WSDL?

Web services 我应该如何补偿坏的WSDL?,web-services,soap,wsdl,soap-client,fault,Web Services,Soap,Wsdl,Soap Client,Fault,我遇到了几个基于SOAP的web服务示例,其中自动化工具无法构建有效的客户机 通过研究这些示例,我相信服务用于描述自身的WSDL与所提供的服务并不完全匹配。可能是某个地方的错误类型,一个不同的数据结构-某些东西 我不确定最合适的回答是什么——如果我们假设明显的回答(让提供商修复他们的东西)不可用 我能想到的一些选择: 制作一个固定的WSDL 破解生成的代码 还有其他选择吗 没有好的选择 人们有什么好的经历?什么在真实环境中起作用 谢谢我会尝试第一个选项,制作一个固定的wsdl。如果这不起作用

我遇到了几个基于SOAP的web服务示例,其中自动化工具无法构建有效的客户机

通过研究这些示例,我相信服务用于描述自身的WSDL与所提供的服务并不完全匹配。可能是某个地方的错误类型,一个不同的数据结构-某些东西

我不确定最合适的回答是什么——如果我们假设明显的回答(让提供商修复他们的东西)不可用

我能想到的一些选择:

  • 制作一个固定的WSDL
  • 破解生成的代码
  • 还有其他选择吗
  • 没有好的选择
人们有什么好的经历?什么在真实环境中起作用


谢谢

我会尝试第一个选项,制作一个固定的wsdl。如果这不起作用,那么您可以对生成的代码进行黑客攻击

当然,如果服务与WSDL完全不同,那么您可能不会很幸运地使用这两个选项

如果你幸运的话,还有别的办法。一些web服务框架支持返回动态生成的WSDL

我知道,使用Axis1.4服务,您可以对服务url+“?WSDL”执行GET操作,并获取动态生成的WSDL


e、 g.
http://foo.com/service/?WSDL

首先,我将尝试确认该工具是否为WSDL创建了正确的绑定。如果WSDL是正确的,并且工具生成的绑定不正确,不会导致正确的SOAP请求/响应处理,那么工具作者可能会提供一个修复或解决方法。

WSDL定义了一个契约,如果契约是错误的,那么它需要被修复。@RichardOD,当然,在理想的世界中。但有些公司/个人对维护自己的合同并不感兴趣。有时候你在现实中对此无能为力world@Glen,那么这就类似于使用一个不受支持的产品,在我的世界里,这意味着我一开始真的不应该使用它。你不只是走进一家你想合作的企业,给他们一份合同,并期望他们遵守。他们必须向你提供他们那一方的合同。如果他们不想做或不想做,这就意味着他们不想做那种生意,强迫他们做可能不是一个好主意。修改他们提供的WSDL是一种边缘代码破解,正如Glen所说,尽管在现实世界中,有时你会处于一种没有选择的情况下,你必须充分利用糟糕的情况,例如,当客户机坚持使用特定服务时,您可能需要修复wsdl以使其正常工作,这远远不是“代码破解”。使用您自己的本地wsdl文件来描述远程服务是完全可以接受的,只要您知道本地版本不会获取对服务的更改。这并不理想,但有时就是这样。