GroovyサーブレットできるなどのJARファイルTomcat
-
25-09-2019 - |
質問
私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オブジェクトを使用することができます。ここではいくつかの例をを参照してください。