Sun Metro 和 Apache CXF 在 Java 中进行 Web 服务开发方面的相对优势和劣势是什么。还有另一个我应该关注的框架吗?
2 回答
Metro 和 CXF 都是符合 JAX-WS 的 Web 服务堆栈,从运行时的角度来看,它们之间几乎没有选择余地。
但是,如果您愿意超越 JAX-WS 规范,CXF 具有更好的文档、更多的灵活性和附加功能。仅根据文档,我每次都会选择 CXF 而不是 Metroevery。
但是,我会选择Spring WebServices而不是 Metro 或 CXF。它不符合 JAX-WS 标准,但我认为这不是问题。它也比它们中的任何一个都简单得多,而且灵活得多。强烈推荐。
几个月前我在你的位置上,最后仔细观察了 Metro。
对我来说,杀手级功能是 Metro 使用标准注释将给定方法公开为 Web 服务,并且所有胶水代码都可以在运行时自动生成。即,在我们当前的部署平台 Java 5 下构建和部署并在标准 servlet 容器(我相信是 2.5)中工作时不需要额外的步骤。
这对我们来说非常有效。
我选择标准注释的原因很简单,因为我们的应用程序往往可以活几十年,之后必须进行一些维护。通过对接口而不是实现进行编码,我们可以在不更改实现 Web 服务的代码的情况下交换代码下面的整个脚手架。在十年(或更长)的时间里,任何特定的实现可能已经枯萎和死亡,但其他实现可能已经兴起并且可以立即插入。
看看你今天有多少 servlet 容器的选择......这就是一个好的 API 的力量!
编辑:显然 Java 6 运行时包括 Metro 堆栈和一个最小的 Web 服务器。换句话说,单独的 JRE 可能是上面提到的脚手架替代品:D