2

我们的一个产品使用最后契约的方法发布了一个 web 服务。这已成为一个真正的问题,因为我们所有的客户(ws 客户)都必须在我们发布产品的新版本后立即重建他们的客户端应用程序。这是由于所有命名空间更改都作为自动生成的 wsdls 的成本。我们将 Axis1 用于 javatowsdl。我一直在寻找一种好的方法/工具来为此开发向后兼容的 Web 服务。

即 9.3 版本的客户端仍然可以访问 10.0 服务,因为他们会错过一些功能,这很好。但它们应该能够在不中断的情况下运行。

我确实理解整个问题是由于我们的合同最后一种方法(如果我错了,请纠正我)。因此,如果解决方案是采用合同优先的 Web 服务,我可以使用哪些工具和技术?还有什么是围绕合同优先的最佳实践?

提前致谢。

4

1 回答 1

2

正如您已经意识到的那样,建议使用合同优先(或自顶向下)的方法来开发 Web 服务。这意味着手动定义您的 WSDL 接口并使用自动工具基于此文档生成 Web 服务的 Java 框架。

重要的是您的 WSDL 符合WS-I 标准以确保不同平台上的客户端之间的互操作性。您可以使用SOAP-UI来测试您的 WSDL 是否与标准兼容。

对于骨架生成,您可以使用几个 Web 服务运行时 API:如 Apache Axis 和 JAX-WS。我个人更喜欢 JAX-WS,因为它是一种 Java 标准,并且受到所有 Java EE 容器的支持。每个容器都为骨架生成提供了工具,Weblogic 有一些不错的Ant 任务,但也有容器中立的WS-Import

于 2012-10-12T00:56:39.140 回答