Web services 如何检测WSDL契约中的破坏性更改?

Web services 如何检测WSDL契约中的破坏性更改?,web-services,wsdl,Web Services,Wsdl,我们希望有一个设置,在将web服务部署到登台服务器时,通过将WSDL契约与生产站点的WSDL进行比较,如果WSDL契约中有任何中断的更改,我们将得到通知 是否有任何工具或服务可以帮助您做到这一点 尝试过,但在尝试时抛出了java.lang.StackOverflowerError:);我不知道有这样的工具 我还回答了“其他”问题。看看那里发布的指导方针,我想说应该可以推出自己的(可能,不容易:) 我过去也做过类似的工作;尽管不是WSDL,而是另一种方言。我的方法是 将WSDL/模式解析为常规XM

我们希望有一个设置,在将web服务部署到登台服务器时,通过将WSDL契约与生产站点的WSDL进行比较,如果WSDL契约中有任何中断的更改,我们将得到通知

是否有任何工具或服务可以帮助您做到这一点


尝试过,但在尝试时抛出了
java.lang.StackOverflowerError:)

;我不知道有这样的工具

我还回答了“其他”问题。看看那里发布的指导方针,我想说应该可以推出自己的(可能,不容易:)

我过去也做过类似的工作;尽管不是WSDL,而是另一种方言。我的方法是

  • 将WSDL/模式解析为常规XML(毕竟它们本身就是XML方言)(模式可能很棘手)
  • 构建内存模型
  • 定义规则并应用它们

  • WSDL部分更容易,因为构造的数量有限;模式将是棘手的,但我想还是可行的

    您将什么定义为不间断更改?对现有WSDL结构的任何更改都可能对使用它的任何程序产生影响。因此,非破坏性更改是指添加新功能和/或更改系统中未使用任何程序的现有结构(该代码是否是您可以提供的用于回答问题的输入的一部分)?可能破坏性更改的定义不明确,因为它取决于客户机如何使用服务。但是,我认为,例如,添加新操作不会破坏任何客户端,但重命名操作/类型/参数会破坏更改。理想情况下,工具可以列出合同的变更,然后我们可以决定这些变更是否可以接受。这样做的总体目的是避免发布对合同的意外更改,例如,如果有人重命名了一个类型,而不知道它是由web服务公开的。@Ira我还询问了您的评论。