Проблемы с использованием веб-службы из Groovy скрипта - PullRequest
4 голосов
/ 07 июля 2010

У меня возникли проблемы при попытке использовать веб-сервис из отличного сценария.Я использую WSClient lib.

Если я выполню пример, размещенный на сайте 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 для получения списка возможных опций 07-Jul-2010 9:55:57 org.apache.cxf.endpoint.dynamic.DynamicClientFactory createC lient GRAVE: Не удалось скомпилировать Java-файлы для http://xxx:8080/x/services/xxx?wsdl.. Внимание: groovyx.net.ws.exceptions.InvokeException: java.lang.NullPointerExceptio n в groovy-ws.run (groovy-ws.groovy: 13)

Код точно такой же (кроме URL-адреса wsdl, который соответствует одному внутреннему серверу).Основное различие между ними состоит в том, что второй wsdl - это стиль RPC, а первый - нет.Я читал, что есть некоторые проблемы с использованием RPC, таких как веб-сервисы, из Groovy с WSClient lib.Anyone Кто-нибудь знает, как использовать RPC как веб-сервисы с WSClient?Anyone Может ли кто-нибудь просветить меня, пожалуйста?

Большое спасибо

Ответы [ 2 ]

1 голос
/ 20 мая 2011

Кажется, в GroovyWS есть ошибка, задокументированная здесь на их JIRA.

В настоящее время она не решена и была добавлена ​​в 2010 году.

Я лично получаюта же ошибка с чем-либо, кроме тривиального примера сервиса, с Groovy 1.8.0, GroovyWS 0.5.2

Надеюсь, кто-нибудь найдет проблему и исправит ее - WSClient определенно может стать отличной альтернативой традиционному CXF / JAXB

0 голосов
/ 07 июля 2010

Не используйте WSClient - лучший ответ, который я могу вам дать.Для чего-то, кроме простых сервисов, которые я обнаружил, WSClient не работает.Вместо этого воспользуйтесь клиентом веб-службы на основе Java, который вам наиболее удобен, и звоните из Groovy.

...