MissingMethodException是一项服务:“没有方法签名”

时间:2015-01-29 22:16:39

标签: grails

在Grails服务中遇到一个非常奇怪的问题。我有一个像这样设置的服务:

package com.mydomain

import java.net.URLEncoder
import java.rmi.server.UID
import java.security.*

class EmailConfirmationService {
    def sendConfirmation(Person person) {}
}

我正在使用emailConfirmationService.sendConfirmation(person)

从控制器调用它

当我启动Grails应用程序时,它会抛出以下错误:

MissingMethodException occurred when processing request: [POST] /api/people/
No signature of method: mydomain.api.EmailConfirmationService.sendConfirmation() is applicable for argument types: (com.mydomain.Person) values: [name@mydomain.com]

我所要做的就是保存EmailConfirmationService文件,观察者选择并重新编译,然后它运行良好,再也不会抛出该错误。

直到我重新启动,然后它才会出错,直到我再次保存该文件。

我尝试了以下但是还没有任何工作:

  • clean build
  • 更改了功能名称
  • 确保人员实例存在

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

您的服务声明另一个包(com.mydomain)而不是错误消息(mydomain.api)中的包。请确保软件包匹配并且文件位于grails-app/services/com/mydomain/EmailConfirmationService.groovy中(除非所有这些都是由于您为SO所做的一些混淆)