【问题标题】:Problems consuming web service from groovy script从 groovy 脚本使用 Web 服务的问题
【发布时间】:2010-07-07 08:47:21
【问题描述】:

我在尝试从 groovy 脚本中使用 Web 服务时遇到了一些问题。我正在使用 WSClient 库。

如果我执行 groovy 网站上发布的示例:

@Grab(group='org.codehaus.groovy.modules', module='groovyws', version='0.5.2')
import groovyx.net.ws.WSClient

proxy = new WSClient("http://www.w3schools.com/webservices/tempconvert.asmx?WSDL", this.class.classLoader)
proxy.initialize()
result = proxy.CelsiusToFahrenheit(0)
println "You are probably freezing at ${result} degrees Farhenheit"

工作正常,但是一旦我尝试使用另一个服务,它就会崩溃并出现以下错误:

信息:创建的类:javac:否 源文件用法:javac 使用 -help 获取列表 可能的选项 2010 年 7 月 7 日 9:55:57 org.apache.cxf.endpoint.dynamic.DynamicClientFactory createC 客户端 GRAVE:无法编译 http://xxx:8080/x/services/xxx?wsdl 的 java 文件。 抓住: groovyx.net.ws.exceptions.InvokeException: java.lang.NullPointerException 在 groovy-ws.run(groovy-ws.groovy:13)

代码完全相同(除了对应一个内部服务器的 wsdl url)。我发现它们之间的主要区别是第二个 wsdl 是 RPC 样式,而第一个不是。我已经读过使用 WSClient 库从 groovy 使用 RPC 之类的 Web 服务存在一些问题。 ¿ 有谁知道如何使用 WSClient 来使用像 web 服务这样的 RPC? ¿ 任何人都可以启发我吗?

非常感谢

【问题讨论】:

    标签: groovy web-services


    【解决方案1】:

    GroovyWS 中似乎有一个错误,在他们的 JIRA 上记录了here

    目前尚未解决,于 2010 年添加。

    我个人在使用 Groovy 1.8.0、GroovyWS 0.5.2 的普通示例服务之外的任何东西都遇到了同样的错误

    希望有人能找到问题并解决它 - WSClient 绝对可以成为传统 CXF/JAXB 的绝佳替代品

    【讨论】:

      【解决方案2】:

      不要使用 WSClient 是我能给你的最佳答案。除了简单的服务,我发现 WSClient 不能很好地工作。而是使用您最熟悉的基于 Java 的 Web 服务客户端,并从 Groovy 调用它。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-05-11
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-12-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多