【发布时间】:2010-06-08 23:14:42
【问题描述】:
我创建了一个 groovlet,它将充当一种 HTTP 代理。它接受 GET 请求,然后根据请求中提供的 URL 进行 Web 服务调用。
这是我目前得到的代码:
@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!'
}
}
我在 groovlet 的 WEB-INF/lib 文件夹中有 Groovy HTTPBuilder JAR 文件。但是,代码无法正常工作。 (我也尝试将文件夹放在$TOMCAT_HOME/common/lib 中,结果与以下相同。)
当我完全按照上面的方式运行代码时,页面返回完全空白。
如果我只删除顶部的 @Grab 行(因为理论上 JAR 应该已经在类路径中),我会从 Tomcat 收到一个令人讨厌的错误(我在 5.5 上运行它,但我得到的结果大致相同6) 的行为:
HTTP 状态 500 - GroovyServlet 错误: 脚本:'/proxy.groovy':脚本 处理失败。启动失败: 语义期间的一般错误 分析:类型 org.apache.http.client.methods.HttpRequestBase 不存在 java.lang.TypeNotPresentException: 类型 org.apache.http.client.methods.HttpRequestBase 不存在...
然后是堆栈跟踪。
我的 groovlet 出了什么问题?
【问题讨论】:
标签: groovy httpbuilder groovy-grape groovlet