这是一个开放式的问题和相当多的文字,但我仍然坚持。
首先是一点背景。去年我一直在写Web服务。我从这个领域的零知识开始。我的工作是准备WSDL(我可以构建它,但我想要)并实现它。我对XSD Schemas的编写方式有一点影响,但并不多。我参加了2个项目。第一个只有大约5个网络服务,而第二个有超过20个并且仍在增长。两者都经过不断的XSD架构修改。
现在到了这一点。
我决定在结构化WSDL设计方面使用两种不同的方法。在第一个项目中,我在WSDL之间分离了WS,每个WSDL一个WS。这非常有效,特别是因为每个操作使用的XSD架构不同(除了一个很少改变的基本架构)。但是你确实有5种不同的WSDL,这对我来说似乎很浪费。
第二个项目有更多的WS和更大的数量和更复杂的模式。在这里,我决定根据其用途将服务分组为少数WSDL。一切看起来都很棒,直到我意识到(我缺乏足够的知识)WSs,当被调用时,被他们的身体主要元素识别(实际上我仍然不知道为什么会如此)。我们的很多WS都有与输入相同的元素,因为它们在同一个WSDL中,所以它们具有相同的路径。这引起了应用程序服务器(Weblogic 10.3)的警告,但它有效。我猜它使用了SOAPAction头,因为我们使用的是SOAP 1.1。在企业总线(OSB)上部署服务时会出现问题。除非选择SOAPAction作为选择算法,否则它将无效,或者像我们的oracle顾问建议的那样,为每个WS创建了一个额外的唯一元素。
这就是问题所在。如何构建WSDL。我考虑的选项是:
现在,如果有人有任何其他解决方案,我很乐意听到他们,因为这让我在上个月左右难过。我只是找不到感觉恰到好处的解决方案。
提前致谢。