Я создал Groovlet, который будет действовать как своего рода HTTP-прокси. Он принимает запросы GET, а затем выполняет вызовы веб-службы на основе 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 Status 500 - Ошибка GroovyServlet:
скрипт: '/proxy.groovy': скрипт
обработка не удалась
Общая ошибка во время семантики
анализ: тип
org.apache.http.client.methods.HttpRequestBase
не присутствует
java.lang.TypeNotPresentException:
Тип
org.apache.http.client.methods.HttpRequestBase
нет ...
Затем следует трассировка стека.
Что не так с моим Groovlet?