2011-09-11 9 views
3

Comment installer et utiliser le plugin httpbuilder dans Grails?Comment installer et utiliser le plugin httpbuilder dans les grails

+0

Il n'y a pas de plugin nommé "httpbuilder". Il existe cependant un plugin [REST Client] (http://www.grails.org/plugin/rest). Y avait-il quelque chose de flou sur son installation ou son utilisation dans [documentation] (http://www.grails.org/plugin/rest)? Votre question est plutôt large. –

Répondre

5

Il est le REST Client plugin:

  • Installation:

    grails install-plugin rest 
    
  • Exemple:

    withHttp(uri: "http://www.google.com") { 
        def html = get(path : '/search', query : [q:'Groovy']) 
        assert html.HEAD.size() == 1 
        assert html.BODY.size() == 1 
    } 
    
+0

Comment faire un post et ne pas obtenir? – user903772

+4

Je n'ai pas lu les docs ou jamais utilisé ce plugin, mais ma supposition sans instruction serait de remplacer 'get' par' post' –

+0

Notez qu'à partir de la version 2.3, 'install-plugin ne peut plus être utilisé pour installer des plugins'. J'essaye toujours de comprendre celui-ci maintenant, et je manque vraiment le noeud/npm :( –

28

Ajout httpbuilder 0.5.1 à vos dépendances d'application entraînera er rors. En particulier, vous aurez une chose d'erreur comme ceci:

java.lang.LinkageError: loader constraint violation: when resolving overridden method "org.apache.xerces.jaxp.SAXParserImpl.getParser()Lorg/xml/sax/Parser;" the class loader (instance of org/codehaus/groovy/grails/cli/support/GrailsRootLoader) of the current class, org/apache/xerces/jaxp/SAXParserImpl, and its superclass loader (instance of <bootloader>), have different Class objects for the type org/xml/sax/Parser used in the signature 

Je pense que le problème est que httpbuilder exporte c'est des dépendances à la compilation comme les dépendances d'exécution. Une solution facile est de déclarer la dépendance comme ceci dans votre BuildConfig.groovy:

grails.project.dependency.resolution = { 
    ... 
    dependencies { 
     runtime('org.codehaus.groovy.modules.http-builder:http-builder:0.5.1') { 
      excludes 'xalan' 
      excludes 'xml-apis' 
      excludes 'groovy' 
     } 
    } 
} 

Je pense que vous avez besoin mavenRepo "http://repository.codehaus.org" dans la section des dépôts ainsi.

+0

ceci * devrait * être la bonne réponse ... – James

+0

Vous roche ataylor! Résolu mon après-midi –

+0

Codehaus est maintenant mort. a besoin – rahulserver

0

Je fini par utiliser l'étape ci-dessus par ataylor mais a ensuite commenté le bloc et le plugin testé:

compile ":rest:0.7" 

plug-in Rest utilise http-constructeur et sans avoir la dépendance au-dessus de mon application fonctionne toujours très bien et fait des appels grâce au constructeur http.

Questions connexes