2

GroovyおよびHttpBuilderライブラリに奇妙な問題があります。まず、私は Groovy を始めたばかりです。

コードはチュートリアルに基づいています。HTTP サーバーからファイルのリストをロードするだけです。コードは昨日は機能していましたが、今日 (ワークスペースのビルド後) は機能しませんでした。

問題は:

Caught: groovy.lang.MissingMethodException: No signature of method: groovyx.net.http.HTTPBuilder.request() is applicable for argument types: (groovyx.net.http.Method, groovyx.net.http.ContentType, pl.linfo.groovy.samples.HttpTest$_main_closure1)
Possible solutions: request(groovyx.net.http.Method, groovy.lang.Closure)

コードは次のとおりです。

def http = new HTTPBuilder( 'http://nbp.pl/Kursy/xml/dir.txt' )
    http.request( GET, TEXT ) { 
        response.success = { resp, reader ->
            println "${resp.statusLine}"
            files = reader.text.split ('\r\n')
        }
        response.'404' = {
            println "Not found!"
            return
        }
    };

実行環境はEclipse 3.6

問題はグルーヴィーなコンパイルの問題だと思います。再コンパイル後のグルーヴィーなコードフラグメントがクロージャーと一致しなくなりました。ただし、Groovy の初心者として、何が起こっているのかを知るのに問題があるので、助けてください。

4

1 に答える 1

1

これは、Eclipse Groovy プラグインに問題があるはずです。あなたが投稿したコードは、groovy インタープリターを使用して実行するとうまく機能します。

$ cat hbuildertest.groovy 
@Grab(group='org.codehaus.groovy.modules.http-builder', module='http-builder', version='0.5.1' )
import groovyx.net.http.*
import static groovyx.net.http.ContentType.*
import static groovyx.net.http.Method.*

def http = new HTTPBuilder( 'http://nbp.pl/Kursy/xml/dir.txt' )
    http.request( GET, TEXT ) { 
        response.success = { resp, reader ->
            println "${resp.statusLine}"
            files = reader.text.split ('\r\n')
        }
        response.'404' = {
            println "Not found!"
            return
        }
    };


$ groovy hbuildertest.groovy 
May 19, 2011 12:59:08 AM groovyx.net.http.ParserRegistry getCharset
WARNING: Could not find charset in response
HTTP/1.1 200 OK
$ 

また、署名付きのメソッド:

public Object request( Method m, Object contentType, Closure configClosure ) 
            throws ClientProtocolException, IOException 

groovyx.net.http.HTTPBuilderライブラリの少なくとも 0.3.0 バージョン以降、クラスに存在します。

于 2011-05-19T08:04:33.667 に答える