3

Grailsにhttpbuilderプラグインをインストールして使用するにはどうすればよいですか?

4

3 に答える 3

28

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"リポジトリのセクションでも必要だと思います。

于 2011-09-11T16:47:32.570 に答える
5

RESTクライアントプラグインがあります:

  • インストール:

    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
    }
    
于 2011-09-11T16:17:36.340 に答える
0

私は最終的にataylorによる上記の手順を使用しましたが、ブロックをコメントアウトしてプラグインをテストしました。

compile ":rest:0.7"

Restプラグインはhttp-builderを使用しますが、上記の依存関係がなくても、私のアプリは正常に動作し、httpbuilderを介して呼び出しを行います。

于 2013-09-30T16:06:11.633 に答える