2012-03-26 4 views
1

새 grails 앱을 만들고 grails install-plugin rest을 작성합니다. 앱 빌드. 부트 스트랩으로 http://grails.org/plugin/rest하고 있습니다 : 지금은 플러그인 페이지에서 정확히 예를 추가Grails : 나머지 플러그인을 올바르게 사용/설치하는 방법

이 다음과 같은 오류와 충돌
import l2http.* 
class BootStrap { 

    def init = { servletContext -> 
    withHttp(uri: "http://www.google.com") { 
     def html = get(path : '/search', query : [q:'Groovy']) 
     assert html.HEAD.size() == 1 
     assert html.BODY.size() == 1 
    } 
    } 
    def destroy = { 
    } 
} 

:

| Loading Grails 2.0.0 
| Configuring classpath. 
| Environment set to development..... 
| Packaging Grails application..... 
| Compiling 1 source files..... 
| Running Grails application 
| Error 2012-03-26 11:41:07,823 [Thread-8] ERROR context.GrailsContextLoader - Error executing bootstraps: groovy.lang.MissingMethodException: No signature of method: grails.util.Environment.withHttp() is applicable for argument types: (java.util.LinkedHashMap, BootStrap$_closure1_closure3) values: [[uri:http://www.google.com], [email protected]] 
Message: groovy.lang.MissingMethodException: No signature of method: grails.util.Environment.withHttp() is applicable for argument types: (java.util.LinkedHashMap, BootStrap$_closure1_closure3) values: [[uri:http://www.google.com], [email protected]] 
Line | Method 
->> 290 | evaluateEnvironmentSpecificBlock in grails.util.Environment 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 283 | executeForEnvironment   in  '' 
| 259 | executeForCurrentEnvironment . . in  '' 
| 334 | innerRun       in java.util.concurrent.FutureTask$Sync 
| 166 | run . . . . . . . . . . . . . . in java.util.concurrent.FutureTask 
| 1110 | runWorker      in java.util.concurrent.ThreadPoolExecutor 
| 603 | run . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run        in java.lang.Thread 
Caused by MissingMethodException: No signature of method: grails.util.Environment.withHttp() is applicable for argument types: (java.util.LinkedHashMap, BootStrap$_closure1_closure3) values: [[uri:http://www.google.com], [email protected]] 
->> 345 | methodMissing     in grails.util.Environment$EnvironmentBlockEvaluator 
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|  4 | doCall       in BootStrap$_closure1 
| 290 | evaluateEnvironmentSpecificBlock in grails.util.Environment 
| 283 | executeForEnvironment   in  '' 
| 259 | executeForCurrentEnvironment . . in  '' 
| 334 | innerRun       in java.util.concurrent.FutureTask$Sync 
| 166 | run . . . . . . . . . . . . . . in java.util.concurrent.FutureTask 
| 1110 | runWorker      in java.util.concurrent.ThreadPoolExecutor 
| 603 | run . . . . . . . . . . . . . . in java.util.concurrent.ThreadPoolExecutor$Worker 
^ 722 | run        in java.lang.Thread 
+0

필자는 그 플러그인을 사용 해본 적이 없지만 API를 보면'with * '메소드가 Controller 클래스에만 추가 될 수있는 것처럼 보입니다. 'BootStrap' 클래스에서 그것을 호출하려고합니다. 위에서 설명한 'withHttp'를 사용하는 간단한 더미 컨트롤러를 만들려고합니다. –

답변

1

withHttp 또는 나머지-플러그인 추가 한 방법 BootStrap 클래스가 아닌 컨트롤러 및 서비스에 주입됩니다. 서비스 또는 컨트롤러 내에서 사용해보십시오. 건배. Bernardo

관련 문제