json - groovy.json.JsonSlurper 在 groovy 1.7.8 中在哪里

标签 json grails httpbuilder

我正在运行 Grails 1.3.7;我的服务器 A 需要在服务器 B 上发出 POST 请求。我正在使用 http-builder库提出这些请求。该请求似乎编写正确

RESTClient http = new RESTClient( searchServerUrl );

Map body = ...;     
logger.trace("request: ${request}, body: ${body}")
def response = http.post( path: request, body: body, requestContentType: URLENC)
logger.trace("response: ${response}");
return response;

服务器 B 正确执行计算,并向服务器 A 返回 JSON 结构。当服务器 A 尝试解析它时,我看到一长串异常,根源如下:

Caused by: java.lang.NoClassDefFoundError: groovy/json/JsonSlurper
at groovyx.net.http.ParserRegistry.parseJSON(ParserRegistry.java:280)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:90)
... 145 more

已编辑 http-builder 库在其 dependencies 文件夹中附带了 groovy-1.8.8.jar,但我宁愿使用标准 Groovy 库( v. 1.7.8) 是我的 Grails 运行时附带的。不幸的是,groovy.json 命名空间似乎不存在。我该怎么办?

最佳答案

因为http-builder-0.6基于 Groovy 1.8.8,它假设 JSONSlurper 类可用于 Groovy 库。由于我使用的是 Groovy 1.7.8 附带的 Grails 版本,因此我没有该库。在此阶段有两种选择:将应用程序升级到更新的 grails 版本,或者将 http-builder 库降级到显式包含 JSON 类的库。我选择了第二种解决方案(从 Grails 1.3.7 升级到 2.2 并不简单),并且能够让我的代码与 http-builder-0.5.2 一起使用。 .

关于json - groovy.json.JsonSlurper 在 groovy 1.7.8 中在哪里,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13999081/

相关文章:

Grails 3 : Integration tests run at a development environment, 不在测试环境中

hibernate - Grails:获取/解决 “Could not synchronize database state with session”吗?

grails - 使用Realm + RABBIT MQ进行Groovy Httpbuilder身份验证

python - 通过python代码附加JSON文件

arrays - 在数据存储中的 JSON 类型字段中插入空数组

mysql - 如何使用通配符从mysql查询json数据

unit-testing - 如何在Spock单元测试中测试Groovy构造函数并覆盖100%的代码

javascript - 如何在 JavaScript 响应中使用 image_tag?

unit-testing - Groovy HTTPBuilder 模拟客户端

grails - 抓取 Grapes 时出错 - 未找到依赖项