Как установить и использовать плагин httpbuilder в Grails - PullRequest
3 голосов
/ 11 сентября 2011

Как установить и использовать плагин httpbuilder в Grails?

Ответы [ 3 ]

28 голосов
/ 11 сентября 2011

Добавление httpbuilder 0.5.1 к зависимостям вашего приложения приведет к ошибкам.В частности, вы получите сообщение об ошибке, похожее на это:

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

Я думаю, проблема в том, что httpbuilder экспортирует свои зависимости времени компиляции как зависимости времени выполнения.Простой обходной путь - объявить такую ​​зависимость в вашем 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'
        }
    }
}   

Я думаю, вам также нужно mavenRepo "http://repository.codehaus.org" в разделе репозиториев.

5 голосов
/ 11 сентября 2011

Существует плагин REST Client :

  • Установка:

    grails install-plugin rest
    
  • Пример:

    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 голосов
/ 30 сентября 2013

В итоге я использовал описанный выше шаг от ataylor, но затем прокомментировал блок и протестировал плагин:

compile ":rest:0.7"

Плагин Rest использует http-builder, и, не имея вышеуказанной зависимости, мое приложение по-прежнему работает нормально и выполняет вызовы через http builder.

...