Мыло в Groovy - продолжайте получать NoSuchMethodError - PullRequest
0 голосов
/ 10 октября 2010

Вопрос новичка:

Я новичок в Groovy и мыле, так что я могу что-то упустить здесь:

Я пытаюсь связаться с очень простым веб-сервисом:

import groovy.net.soap.SoapClient
... 
def proxy = new SoapClient("http://soapclient.com/xml/soapresponder.wsdl")
res = proxy.Method1("ABC", "123");
println (res);

Кажется, соединение работает, но когда я пытаюсь вызвать "Method1 (..)", я продолжаю получать

Exception in thread "main" java.lang.NoSuchMethodError: org.codehaus.groovy.runtime.InvokerHelper.getInstance()Lorg/codehaus/groovy/runtime/Invoker;
    at groovy.net.soap.SoapClient.invokeMethod(Unknown Source)

Это соответствующая часть WSDL:

<message name="Method1">
<part name="bstrParam1" type="xsd:string"/>
<part name="bstrParam2" type="xsd:string"/>
</message>
−
<message name="Method1Response">
<part name="bstrReturn" type="xsd:string"/>
</message>
−
<portType name="SoapResponderPortType">
−
<operation name="Method1" parameterOrder="bstrparam1 bstrparam2 return">
<input message="tns:Method1"/>
<output message="tns:Method1Response"/>
</operation>
</portType>

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 10 октября 2010

На странице справки для Groovy Soap говорится, что она устарела (3 марта 2008 г.), поэтому, вероятно, давно не любила: - /

Рекомендуется использовать GroovyWS , и на этой странице написано, что это должно работать:

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

try {
  proxy = new WSClient( "http://soapclient.com/xml/soapresponder.wsdl", this.class.classLoader)
  proxy.initialize()

  result = proxy.Method1("ABC", "123")
  println res
}
catch( e ) {
  e.printStackTrace()
}

Однако, когда вы запустите это, вы получите:

[snip]
Caused by: org.xml.sax.SAXParseException: Unexpected <schema> appears at line 0 column 0
    at com.sun.xml.xsom.impl.parser.NGCCRuntimeEx.unexpectedX(NGCCRuntimeEx.java:488)
    ... 54 more

Я не могу понять, почему этот WSDL неправильный, однако ... Я буду продолжать искать

0 голосов
/ 07 ноября 2010

Ну, это не помогло, но я перешел на GroovyWS, и после небольшой адской зависимости он заработал.Смотри здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...