2011-09-11 56 views
3

如何在Grails中安裝和使用httpbuilder插件?如何在grails中安裝和使用httpbuilder插件

+0

沒有名爲「httpbuilder」的插件。雖然有一個[REST客戶端](http://www.grails.org/plugin/rest)插件。在[documentation](http://www.grails.org/plugin/rest)中安裝或使用有什麼不清楚的地方?你的問題相當寬泛。 –

回答

5

還有就是REST Client plugin

  • 安裝:

    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

我該如何做一個帖子,而不是得到? – user903772

+4

我沒有閱讀過文檔或者曾經使用過這個插件,但是我沒有受過教育的猜測是用'post'代替'get'' –

+0

請注意,從2.3開始,'install-plugin不能再用於安裝插件'。我仍然試圖找出這一個現在,我真的想念node/npm :( –

28

添加httpbuilder 0.5.1到您的應用程序依賴將導致ER RORS。特別是,你會得到一個錯誤是這樣的:

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"爲好。

+0

這*應該*是正確的答案... – James

+0

你搖滾ataylor!解決我的下午 –

+0

Codehaus現在已經死了。需要更新 – rahulserver

0

我結束了使用上述步驟由ataylor但隨後註釋掉塊和測試插件:

compile ":rest:0.7" 

休息插件使用HTTP的建設者和不具有上述扶養我的應用程序仍然工作正常,並進行調用通過http構建器。