2009-10-22 72 views
9

Sun Metro和Apache CXF在Java中进行web服务开发的相对优势和弱点是什么?我还应该看到另一个框架吗?Sun地铁与Apache CXF之间的Web服务开发比较?

+1

看看[WS StackComparison](http://wiki.apache.org/ws/StackComparison) - 这会给你带来一些想法。 – 2011-10-21 16:30:36

回答

5

我几个月前就在你的位置上,最后看着地铁。

对我来说,杀手功能就是Metro使用标准注释将给定的方法公开为Web服务所有胶水代码都可以在运行时自动生成。即在我们当前的部署平台Java 5下构建和部署时,不需要额外的步骤来制作和部署标准servlet容器(2.5我相信)。

这对我们工作得非常好。

我去标准注释的原因非常简单,我们的应用程序几十年来一直倾向于文学生活,在这之后必须进行一些维护。通过编码到一个接口而不是一个实现,我们可以替换代码下的整个脚手架,而无需更改实现Web服务的代码。在十年(或更长时间)任何具体的实施可能已经枯萎并死亡,但其他实施可能已经上升并立即可插入。

看看你今天有多少选择一个servlet容器......这就是一个好的API的力量!


编辑:显然,Java 6运行时包括Metro堆栈和一个最小的Web服务器。换句话说,单独的JRE可能是上面提到的脚手架替换:D

+2

+1因为这些可怜的傻瓜在10年的时间里不得不想出这些代码。可能是我们中的一员! – 2009-10-22 20:09:27

+0

@yar,我只是希望它不会是我:) – 2009-10-22 22:24:59

+0

AFAIK,Java 6不包括Metro,它包括JAX-WS RI,它是Metro的一个子集(Metro = JAX-WS + WSIT /探戈)。但是,对于Java 6,您可以使用嵌入在Java SE 6中的HTTP服务器,通过'Endpoint.publish()'方法发布Web服务端点。请参阅http://www.javapassion.com/webservices/jaxwsjavase6。 PDF格式。 – 2009-10-22 22:43:19

9

Metro和CXF都是符合JAX-WS的Web服务栈,从运行时的角度来看,它们之间的选择很少。

但是,如果您愿意超越JAX-WS规范,CXF有更好的文档,更多的灵活性和附加功能。仅在单据的基础上,我会每次都选择新城交通局。

但是,我会在Metro或CXF上选择Spring WebServices。它不符合JAX-WS标准,但我不认为这是一个问题。它也比其中任何一个都简单得​​多,而且更灵活。强烈推荐。

+0

您能否详细介绍一下您所谈论的CXF功能和Spring WS的同上? – 2009-10-22 22:24:21

+0

CXF和Spring-WS的喜悦是,你可以去他们的网站,阅读优秀的文档,看看他们能做什么:) – skaffman 2009-10-23 07:08:55

+1

我知道 - 你可能已经看到我一直在寻找这样的框架。我在想 - 像 - 实际的经验和你曾表示过的那样,我有这个奇怪的想法,也许你甚至想分享它们......对我感到羞耻。 – 2009-10-23 19:59:36