【问题标题】:Grails: how to properly use/install the rest pluginGrails:如何正确使用/安装其余插件
【发布时间】:2012-03-26 18:46:55
【问题描述】:

我创建了一个新的 grails 应用程序并执行grails install-plugin rest。应用程序构建。现在我将插件页面中的示例:http://grails.org/plugin/rest 添加到引导程序中并具有:

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], BootStrap$_closure1_closure3@299cc074]
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], BootStrap$_closure1_closure3@299cc074]
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], BootStrap$_closure1_closure3@299cc074]
->>  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

【问题讨论】:

  • 我以前从未使用过该插件,但查看 API 看起来 with* 方法可能只添加到 Controller 类中。您正在尝试从 BootStrap 类中调用它。我会尝试创建一个简单的虚拟控制器,使用上面描述的withHttp

标签: rest grails plugins


【解决方案1】:

由 rest-plugin 添加的 withHttp 或任何方法被注入到控制器和服务中,而不是注入到 BootStrap 类中。请在服务或控制器中尝试。 干杯。 贝尔纳多

【讨论】:

    猜你喜欢
    • 2017-01-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-13
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多