質問

私groovletとうHTTP行います。より認められていく要望し、webサービスの通話に基づく載されているURLにアクセスしてます。

こちらのコードをもらってい:

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

String url = params.url

def http = new HTTPBuilder(url)

http.request(GET, TEXT) {

     response.success = { resp, reader ->
       println reader
     }

     response.'404' = { resp -> 
       println 'not found!'
     }
}

私にとって、 Groovy HTTPBuilder JARファイルの WEB-INF/lib フォルダのgroovlet.しかし、コードな作業すことができません。(もしくはフォルダ $TOMCAT_HOME/common/lib 同結果は以下のとおり。)

私のコードとしては、上記のページが完全に空白にします。

れば削除の @Grab ライントップ(JARに理論上のクラスパス)にとって厄エラーからTomcatによって走行で5.5んとほぼ同じ挙動の6):

レスポンスのHTTPステータス500-GroovyServletエラー:スクリプト:'/proxy.groovy':スクリプト ができない問題を修正しました。起動に失敗した:一般的なエラー時の意味 解析:タイプ org.apache.http.クライアントます。HttpRequestBase 存在しない java.lang.TypeNotPresentException:タイプ org.apache.http.クライアントます。HttpRequestBase 存在しない...

その後、スタックトレース.

何が間違っていっgroovlet?

役に立ちましたか?

解決

2つのこと。

まず、Groovletsはブドウ(@Grabコマンド)を使用することができないようです。この行が存在する場合にこのGroovletは黙って失敗した理由です。

次に、http-builderモジュールは、(エラーメッセージで参照されorg.apache.http.client.methods.HttpRequestBase含む)19の他のパッケージについて依存します。あなたは~/.groovy/grapesフォルダにこれらのパッケージを見つけることができます。

あなたはすべての依存関係を検索したい場合は、ブドウのディレクトリを削除します。そして、その使用していること@Grabコマンドローカルでスクリプトを実行します。スクリプトの実行が終了したら、あなたはブドウのディレクトリに見て、それがダウンロードされたすべてのものを見ることができます。

私はそれをしなかった場合は、

は、私はパッケージの次のリストを得ます:

antlr
asm
commons-beanutils
commons-codec
commons-collections
commons-lang
commons-logging
net.sf.ezmorph
net.sf.json-lib
net.sourceforge.nekohtml
org.apache
org.apache.commons
org.apache.httpcomponents
org.codehaus.groovy
org.codehaus.groovy.modules.http-builder
xerces

あなたがこのGroovletでHttpBuilderを使用したいのであれば、あなたはWEB-INF / libにまたはあなたのTomcatのcommon / libのディレクトリにすべてのそれらの依存関係を取得する必要があります。

あなたはひどく凝った何かを必要としない場合は、一方、あなたはGroovyのURLオブジェクトを使用することができます。ここではいくつかの例をを参照してください。

scroll top