GroovyWS und komplexe Anfragen

8

Ich hatte Probleme, komplexe Anfragen mit GroovyWS zu senden.

Dies ist eine Beispielanforderung, die von soapUI generiert wurde:

%Vor%

das Stück groovigen Code:

%Vor%

Also, was sollte ich statt übergeben? .

Danke für Ihre Hilfe.

-vova.

    
trnl 23.07.2010, 10:51
quelle

3 Antworten

5

Vielen Dank Bill.

Ich möchte nur einige Informationen für zukünftige Leser hinzufügen.

Um die Protokollierung für GroovyWS in Grails zu aktivieren:

%Vor%

Mit diesem wie erwähnt Bill können Sie die Namen der Klassen sehen.


Eine weitere Sache: parameters kann einen anderen Typ haben. Nicht List<?> . Deshalb sollte es auch erstellt werden.

%Vor%

Um verfügbare Methoden und Felder für neu erstellte Objekte abzurufen, können Sie Groovy reflection verwenden:

%Vor%

Das ist alles!

-vova

    
trnl 28.07.2010, 07:58
quelle
6

GroovyWS erstellt dynamisch Klassen für jeden der Argumenttypen, die Sie benötigen, um Daten an den Web-Service-Aufruf zu übergeben. Zum Beispiel, wenn der Webservice-Aufruf war:

%Vor%

GroovyWS erstellt dynamisch eine Arg1Type-Klasse und eine Arg2Type-Klasse, auf die Sie über eine Methode auf dem Proxy zugreifen können.

%Vor%

Sie können dann die arg1 / arg2-Instanz mit Daten füllen und Ihren Anruf tätigen:

%Vor%

Beachten Sie, dass wahrscheinlich einige Namespaces in den Klassen enthalten sind, die erstellt werden. Ich benutzte die CXF-Protokollierung, die gedruckt wurde, während GroovyWS die WSDL verarbeitete, um zu sehen, was CXF dachte, dass die Klassennamen tatsächlich sein sollten.

    
billjamesdev 25.07.2010 06:34
quelle
3

Danke! Ich habe GroovyWS mit einem wirklich komplexen Webservice arbeiten lassen!

Meine Schritte: Ich habe debug aktiviert, um die root-Klasse zu erhalten, dann habe ich den Reflection-Code benutzt, um innere Klassen zu bekommen, und setze weiter Eigenschaften und überprüfe, ob es eine string oder list ist.

Und voilá!

%Vor%     
Wanderson Santos 05.09.2010 07:55
quelle