我们的产品之一使用合同最后方法发布网络服务。这已经成为一个真正的问题,因为一旦我们发布产品的新版本,我们所有的客户(ws 客户)都必须重建他们的客户端应用程序。这是由于所有名称空间更改都是自动生成的 wsdls 的成本。我们使用 Axis1 作为 javatowsdl。我一直在寻找一种好的方法/工具来为此开发向后兼容的网络服务。
即 9.3 版本的客户端仍然可以访问 10.0 服务,因为它们会错过一些功能,这很好。但它们应该能够正常运行而不会损坏。
我确实明白整个问题是由于我们的合同最后方法造成的(如果我错了,请纠正我)。因此,如果解决方案是采用契约优先的 Web 服务,我可以使用哪些工具和技术?另外,围绕合同优先的最佳实践是什么?
提前致谢。
正如您已经意识到的,建议使用契约优先(或自上而下)的方法来开发 Web 服务。这意味着手动定义 WSDL 接口并使用自动工具基于此文档生成 Web 服务的 Java 骨架。
您的 WSDL 必须遵守WS-I标准 http://www.ws-i.org/确保不同平台上的客户端之间的互操作性。您可以使用SOAP-UI http://www.soapui.org/测试您的 WSDL 是否与标准兼容。
对于 Skeleton 一代,您可以使用多种 Web 服务运行时 API:例如 Apache Axis 和 JAX-WS。我个人更喜欢 JAX-WS,因为它是一个 Java 标准,并且受到所有 Java EE 容器的支持。每个容器都提供了Skeleton生成的工具,Weblogic有一些不错的Ant Task http://docs.oracle.com/cd/E23943_01/web.1111/e13758/setenv.htm#i214591为此,但还有WS-导入 http://docs.oracle.com/javase/6/docs/technotes/tools/share/wsimport.html这是容器中立的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)