我正在寻找有关为 Java REST/SOAP Web 服务实现选择开源技术堆栈的建议。
我看过 Tomcat 和 Jetty 等,但对于这个领域来说相对较新,我对选项的绝对数量和某些文档的缺乏感到有些不知所措。
这适用于 PoC,因此易于配置和使用非常重要。如果将所选技术用于生产,那么显然可扩展性将成为优先事项,但暂时不是(展示项目的其他部分是主要目标)。
任何建议将不胜感激。
我正在寻找有关为 Java REST/SOAP Web 服务实现选择开源技术堆栈的建议。
我看过 Tomcat 和 Jetty 等,但对于这个领域来说相对较新,我对选项的绝对数量和某些文档的缺乏感到有些不知所措。
这适用于 PoC,因此易于配置和使用非常重要。如果将所选技术用于生产,那么显然可扩展性将成为优先事项,但暂时不是(展示项目的其他部分是主要目标)。
任何建议将不胜感激。
这不是一个非常精确的问题。但是为了帮助您入门,我可以这样说:
tomcat 和 jetty 都是 Java Application Server。它们不提供对 REST/SOAP 技术的特定支持。它们只是 Servlet 容器。但是:您的网络服务将由一个或多个 servlet 实现。所以 ServletContainer 肯定会成为您堆栈的一部分。(Tomcat 被广泛使用)。
一旦你有了一个 ServletContainer,你就可以选择一些框架来帮助你。Spring 框架是一个轻量级框架,可帮助您将所有内容整合在一起。配置所有组件等...它提供了对 REST/SOAP 的内置支持,但它也可以与更强大的 Web 服务专用框架集成。
对于 REST 实现,我推荐Jersey(参考实现)。它可以很容易地与 Spring 集成。
对于 SOAP:您可以查看apache CXF(它还提供对 REST 的支持)
所以,你可以看看:Tomcat + Spring + Jersey + CXF。在我看来,从 web 服务开始是一个很好的开源堆栈。
对于 REST,我使用 Jersey:https ://jersey.java.net/和 Grizzly:https ://grizzly.java.net/
对于 SOAP:我使用 JAX-WS(从 Java 6 开始使用),但它很敏感。
我最近使用 Spring MVC 框架构建了 REST API,很容易上手。 http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch18s02.html
或使用 Spring Data http://projects.spring.io/spring-data-rest/
如果您的概念证明有可能演变为生产就绪的解决方案,我建议您从容器的JBoss AS 7.1.1开始。此容器带有集成到容器中的 SOAP 和 REST 实现。生产强化 AS 或将应用程序迁移到企业产品 (EAP) 都很容易。此外,Eclipse 还提供了丰富的工具来简化开发。
到目前为止,我同意所有答案;请注意,任何 Java EE 6 应用程序服务器(或更高版本)都包含 JAX-RS 实现 (REST) 和 JAX-WS (SOAP),因此任何(JBoss、Glassfish 等)都可以。一个成熟的应用程序服务器可能比一个简单的 servlet 容器(例如 Tomcat)更重量级,但这取决于使用情况。