Groovy:impossible de résoudre classe groovyx.net.http.RESTClient
Je suis en train d'apprendre groovy pour un script package appelé geoscript-groovy. J'ai suivi le groovy RESTE tutoriel ici et testé le code suivant:
import groovyx.net.http.RESTClient
def client = new RESTClient( 'http://www.acme.com/' )
def resp = client.get( path : 'products/3322' ) //ACME boomerang
Cependant, j'ai une erreur à la import
déclaration disant:
Groovy:unable to resolve class groovyx.net.http.RESTClient
J'ai cherché partout, et il y a beaucoup de questions et de réponses pour ce message d'erreur, par exemple, importation groovyx.net.http.RESTClient en Groovy classe , et RestClient Graal Importation échoue. Cependant, ils ont tous pour le graal, je n'utilise pas et ne suis pas très familier avec.
Ma question est
Comment dois-je corriger cette erreur si j'ai groovy? (Ma version de groovy est installé sous Ubuntu 12.04 avec les commandes suivantes).
sudo apt-add-repository ppa:groovy-dev/groovy
sudo apt-get update
sudo apt-get install groovy
Grâce.
-- EDIT ---
J'ai ajouté @Saisir des déclarations comme suggéré, et de mettre en place deux lignes rest1.groovy
fichier comme suit:
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.7')
import groovyx.net.http.RESTClient
groovyConsole rest1.groovy
semble fonctionner OK. Mais groovysh < rest1.groovy
est encore de me donner un message d'erreur (voir ci-dessous). Je suppose que j'ai besoin de cette course dans un groovysh
-comme environnement, car le groovy script est appelé en arrière-plan comme un service web. Sans le @Grab
ligne, le service génère une Exception. Avec le @Grab
ligne, le service n'a même pas de vous inscrire. Est-il une manière plus permanente de y compris les dépendances nécessaires pour groovyx.net.http.RESTClient
qu'à un script prenez (par exemple, un apt-get
ou manuel de la copie de quelque chose)?
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
OriginalL'auteur tinlyx | 2014-10-20
Vous devez vous connecter pour publier un commentaire.
Vous avez probablement juste besoin de la de Raisin de la ligne correctement assurez-vous que votre Groovy script a le pot que vous avez besoin dans le classpath. Mettre ceci en haut de votre script:
Remarque, je ne vois pas le reste de votre script, il peut donc y avoir d'autres modules, vous devez Saisir trop.
Vérifiez ici pour plus de possibilités:
http://groovy.codehaus.org/modules/http-builder/doc/rest.html
MODIFIER
Bien, content que ça fonctionne en partie de la façon dont aujourd'hui. Aussi loin que groovysh va, je ne sais pas de manière à avoir groovysh dynamiquement obtenir les bibliothèques dépendantes, donc, ce que vous avez vraiment besoin de faire est, en tant que partie du script à installer, à mettre le pot que vous avez besoin dans un répertoire (appelons-la "lib" ou quelque chose du genre), puis ajouter l'argument de votre groovysh composez le:
groovysh -cp ./lib < script.groovy
à partir de ce: http://groovy.codehaus.org/Groovy+Shell
Le pot que vous voulez devrait être disponible via maven avec l'artefact de la spécification de l' @prendre la ligne.
groovyConsole
mais pas pourgroovysh
. Veuillez voir mon EDIT.OriginalL'auteur billjamesdev