J'ai créé un groovlet qui agira comme une sorte de proxy HTTP. Il accepte les requêtes GET, puis effectue les appels de service Web en fonction de l'URL fournie dans la demande.La servlet Groovy ne trouve pas les fichiers JAR dans Tomcat
Voici le code que j'ai jusqu'à présent:
@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!'
}
}
J'ai le fichier Groovy HTTPBuilder JAR dans le dossier WEB-INF/lib
du groovlet. Cependant, le code ne fonctionne pas comme il se doit. (J'ai également essayé de mettre le dossier dans $TOMCAT_HOME/common/lib
avec les mêmes résultats que ci-dessous.)
Lorsque je cours le code exactement comme ci-dessus, la page revient complètement vide. Si je supprime juste la ligne @Grab
en haut (puisque le JAR devrait théoriquement déjà être dans le classpath), Tomcat me fait une erreur désagréable (je la lance sur 5.5, mais j'ai à peu près le même comportement sur 6):
HTTP Status 500 - GroovyServlet Error: script: '/proxy.groovy': Script processing failed.startup failed: General error during semantic analysis: Type org.apache.http.client.methods.HttpRequestBase not present java.lang.TypeNotPresentException: Type org.apache.http.client.methods.HttpRequestBase not present...
Cela est ensuite suivi de la trace de pile.
Quel est le problème avec mon groovlet?