【发布时间】:2010-01-29 13:39:29
【问题描述】:
我想要一个开源且免费用于商业用途的 Web 服务框架,安全性也是一个主要问题。请建议使用 SOAP 标准的 Java 网络服务框架。
【问题讨论】:
标签: java web-services soap
我想要一个开源且免费用于商业用途的 Web 服务框架,安全性也是一个主要问题。请建议使用 SOAP 标准的 Java 网络服务框架。
【问题讨论】:
标签: java web-services soap
我建议使用 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。
【讨论】:
以下是常用的框架,都比较成熟:
>都支持 SOAP。
我使用过 CXF 和 Spring-WS。两者都易于配置和使用。
【讨论】:
Spring 框架将是这种需求的绝对赢家。 Spring 及其模块,包括 spring security、spring webservices 使其非常适合这个模块。
【讨论】:
看看轴。它非常简单易用。 http://ws.apache.org/axis/
【讨论】:
我同意 Spring-WS 选项。我曾多次使用它,它很快成为我的网络服务选择,除非有其他因素明确排除它。
虽然这有点离题,但如果您处于计划阶段,我会提出以下建议。
选择自上而下的方法。 Spring-WS 肯定支持这一点(这是首选方法)。这样,如果您对底层代码进行更改,您就不必担心意外更新您的 WSDL。此外,在设计时,您可以将 WSDL 视为接口点,而不必过多地阅读其他详尽的文档。
使用 JAXB 生成请求/响应对象。从长远来看,这要容易得多,并且肯定有助于确保您按照 WSDL 的要求进行编码(有好几次我查看生成的对象并发现它们看起来不正确,只是发现我已经修改了WSDL 错误)。
在端点中使用注释。
这些是要点。祝你好运:-)。
【讨论】:
我会使用 Java 提供的那个。
【讨论】: