2012-12-22 46 views
0

我正在運行Grails 1.3.7;我有服務器A需要在服務器B上發出POST請求。我正在使用http-builder庫來發出這些請求。請求似乎是正確組成groovy在哪裏groovy.json.JsonSlurper 1.7.8

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 

EDITEDhttp-builder庫帶有其dependencies文件夾groovy-1.8.8.jar,但我寧願使用隨我的Grails運行標準的Groovy庫(訴1.7.8)。不幸的是,groovy.json命名空間似乎並不存在。我該怎麼辦?

回答

1

由於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一起工作。