2012-12-22 2 views
0

Grails 1.3.7을 실행 중입니다. 서버 B에서 POST 요청을해야하는 서버 A가 있습니다.이 요청을 수행하기 위해 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는 구문 분석을 시도 할 때 서버 A.에 JSON 구조를 반환

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와 함께 제공됩니다,하지만 난 오히려 내 Grails는 런타임과 함께 제공되는 표준 그루비 라이브러리 (V. 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과 작동하도록 코드를 생성 할 수있었습니다.