2010-01-29 53 views

回答

12

我建议一个JAX-WS实现:JAX-WS RI(这是Metro的一部分)或Apache CXF。从运行时的角度来看,两者都非常接近,但许多人发现CXF有更好的文档(可能是一个重要的标准)。如果这对你很重要(实际上,体面的框架不能忽略Spring,所以这并不意外),它们都提供了与Spring的集成。

Spring-WS是另一种选择,但不符合JAX-WS标准,仅支持合同优先方法(来自XSD) - 这是一种哲学选择 - 并且不支持许多WS- *标准(虽然您可能不需要)。在任何情况下,我都会远离Axis 2及其可怕的部署体系结构和打包地狱(Axis 2 webapp本身是需要打包到特定档案中的Web服务的容器)。我发现它完全反作用。最重要的是,它甚至不是perform really well

1

看看Axis。它非常简单易用。 http://ws.apache.org/axis/

+4

轴很烂,我不明白为什么人们不断提示它。 – 2010-01-29 13:51:37

+3

如果你花一分钟的时间解释为什么你认为Axis非常糟糕,你的评论会更有价值和更相关。 – 2010-01-29 13:53:10

+1

@Jim我已经在我的答案中添加了详细信息来说明这一点。 – 2010-01-29 14:01:17

2

Spring框架将是这种需求的明确赢家。 Spring和它的模块,包括弹簧安全,弹簧web服务,使它成为这个适合的。

+0

春天很好,但你会写很多代码 – Greg 2010-01-29 15:36:24

1

我同意Spring-WS选项。我已经在不同的时间使用过它,它很快成为我的网络服务选择,除非有其他因素可以明确排除。

虽然这是有点偏离主题,如果你在规划阶段,我会提出以下建议。

  1. 选择自顶向下的方法。 Spring-WS肯定支持这个(这是首选的方法)。这样,如果您对底层代码进行更改,则无需担心意外更新WSDL。同样在设计时,您可以将WSDL视为接口点,而不是像其他精细的文档一样。

  2. 使用JAXB生成您的请求/响应对象。从长远来看,这非常容易,并且确实有助于确保您按照WSDL的要求进行编码(我查看了很多次生成的对象,并发现它们看起来并不对,只是发现我已经修改过WSDL不正确)。

  3. 在您的端点中使用注释。

这些是要点。祝你好运 :-)。

相关问题