【问题标题】:What is the standard SOAP library to use in groovy?在 groovy 中使用的标准 SOAP 库是什么?
【发布时间】:2012-05-16 15:22:14
【问题描述】:

我只需要一个 SOAP 客户端来进行远程调用,但我有点像 Groovy 菜鸟。根据Groovy documentation,标准的 Groovy SOAP 库已被弃用。相反,文档将您指向一个更新的库:GroovyWS

不幸的是,GroovyWS 有一个警告说该项目处于休眠状态,然后它会将您指向Groovy WSLite

Groovy WSLite 实际上似乎仍在积极开发中,但与之前的 2 个库相比并不是很“Groovy-ish”。 每个人都在使用 wslite 吗?

【问题讨论】:

  • 我对产生这个问题的项目的要求发生了变化,所以我实际上并没有尝试@john-wagenleitner 建议的库,但他的回答似乎是对我问题的最完整的回答。谢谢大家的回答!

标签: soap groovy groovyws


【解决方案1】:

我想您会发现 GroovyWSgroovy-wslite(和 HTTP Builder)都在项目中用作 Groovy SOAP 客户端库,而决定可能是其中一个有效,哪个具有 API/方法用户首选(按此顺序)。

如果您喜欢GroovyWS 提供的 API 及其代理 WSDL 文档的能力,我的建议是尝试一下,看看它是否适用于您需要与之交互的服务。 SOAP 世界中的情况并没有太大变化,所以我不会太担心它最近的更新时间。如果它有效,那么您就完成了,如果您遇到一些您无法立即找到帮助的问题,那么我会尝试其他替代方法。

groovy-wslite(免责声明:我是作者)旨在提供一种轻量级(就依赖项而言)替代方案,以牺牲 WSDL 解析/代理的便利性来更容易地对生成的 soap 调用进行更多控制,而无需必须深入挖掘一些底层 Java 框架(如 CXF)的内部结构。有些人更喜欢在这样的框架之上构建库的附加功能,而另一些人可能更喜欢其他方法的简单性。

Groovy 如此出色的原因在于它与 Java 集成是多么容易。因此,正如其他人已经指出的那样,您可以非常轻松地与 Spring WS、CXF 和 JAX-WS 等 Java Web 服务客户端集成。

【讨论】:

    【解决方案2】:

    我会远离 groovyws,这很糟糕。 看了一圈,最终选择了使用spring web services和contract-driven web services的方案。

    客户端使用 toXml() 方法实例化命令对象,该方法生成肥皂请求 XML。然后使用 WebServiceTemplate 发送到端点。

    对于服务器,我们使用 Spring Web 服务端点。解析传入的 xml 是小菜一碟,您不需要将 XML 编组为对象,因为 XmlSlurper 产生的 GPathResult 是完全可管理的。我们的服务器运行在 grails 之上,因此我们利用了 springws grails 插件,使 Endpoints 的创建更加容易。

    但有一个警告。 grails 的 springws 插件已过时。 Spring Web 服务现在是 2.x 版本,我认为 springws 插件附带 1.4.x。不过不用插件也很好用,我觉得升级插件到新的api也不难。

    另外,如果你想做 MTOM,springws 会稍微复杂一些,因为你需要更深入地研究消息处理。但是,我可以使用 Spring Web 服务做一些非常高级的 ws-security 东西,没问题。

    否则,如果您想坚持使用 jax-ws 等,我会使用 cxf(很好地处理 MTOM)。 过热可能更高,因为所有动态生成的代理和 pojo。 此外,它不是合同驱动的,这对我们来说是一大优势。

    http://predic8.com/groovy-web-services-jax-ws.htm

    http://cxf.apache.org/docs/how-do-i-develop-a-client.html

    【讨论】:

    • FWIW,4 年后,从 SOAP 迁移出来,我会给 groovy wslite 一个机会,用于剩余的 Web 服务客户端。构建服务器端点,我不得不再次研究该领域。请在 2012 年的背景下回答我的问题。
    【解决方案3】:

    看来你自己做了功课! Groovy WS Lite 似乎目前正在工作。如果你想使用 Groovy 看到 spring-ws 的实际效果,那么这里是我在 github 中创建的 test suite 项目。

    【讨论】:

      【解决方案4】:

      或者您可以改用 JSON。 SOAP 已经过时了。上面有关 groovy 文档和 GroovyWS 的链接无处可去

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-24
        • 2013-07-10
        • 1970-01-01
        • 2011-06-20
        • 2017-06-23
        • 1970-01-01
        • 2011-06-28
        • 1970-01-01
        相关资源
        最近更新 更多