Uczę się świetnie w pakiecie skryptowym o nazwie geoscript-groovy. Śledziłem Groovy samouczek REST here i przetestowane następujący kod:Groovy: niezdolny do rozwiązania klasy groovyx.net.http.RESTClient
import groovyx.net.http.RESTClient
def client = new RESTClient('http://www.acme.com/')
def resp = client.get(path : 'products/3322') // ACME boomerang
Jednak mam błąd w rachunku import
mówiąc:
Groovy:unable to resolve class groovyx.net.http.RESTClient
Szukałem wokół i istnieje wiele pytań i odpowiedzi dla tego komunikatu o błędzie, np. import groovyx.net.http.RESTClient in Groovy class i RestClient Grails Import fails. Jednak wszystkie one dotyczą graalów, których nie używam i których nie znam.
Moje pytanie brzmi
Jak mam rozwiązać ten błąd, jeśli mam tylko Groovy? (Moja wersja groovy jest instalowana pod Ubuntu 12.04 z następującymi poleceniami).
sudo apt-add-repository ppa:groovy-dev/groovy
sudo apt-get update
sudo apt-get install groovy
Dzięki.
- EDIT ---
dodałem @Grab oświadczenia zgodnie z sugestią i postawić rest1.groovy
plik dwuwierszowy następująco:
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7')
import groovyx.net.http.RESTClient
groovyConsole rest1.groovy
wydaje się działać OK. Ale groovysh < rest1.groovy
nadal daje mi błąd (jak pokazano poniżej). Chyba muszę mieć ten program w środowisku podobnym do groovysh
, ponieważ groovy skrypt jest wywoływany w tle jako usługa sieciowa. Bez linii @Grab
usługa generuje wyjątek. Z linią @Grab
usługa nawet się nie zarejestruje. Czy istnieje bardziej trwały sposób uwzględnienia niezbędnych zależności dla groovyx.net.http.RESTClient
niż jeden chwyt skryptowy (np. apt-get
lub ręczne kopiowanie czegoś)?
groovysh < rest1.groovy
Groovy Shell (1.8.6, JVM: 1.7.0_72)
Type 'help' or '\h' for help.
-------------------------------------------------------------------------------
groovy:000> @Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7')
groovy:001> import groovyx.net.http.RESTClient
ERROR org.codehaus.groovy.tools.shell.CommandException:
Invalid import definition: 'import groovyx.net.http.RESTClient'; reason: startup failed:
script1413902882282760571375.groovy: 1: unable to resolve class groovyx.net.http.RESTClient
@ line 1, column 1.
import groovyx.net.http.RESTClient
Czy dodajesz do swojej ścieżki klasowej program budujący http? Sprawdź ten przykład. http://groovy.codehaus.org/modules/http-builder/doc/rest.html – Raphael