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)的 Controller 中调用它

当我启动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: [[email protected]]

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

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

我已经尝试了以下方法,但是仍然没有任何效果:
  • 清洁构建
  • 更改了函数名称
  • 确保人实例存在

  • 有任何想法吗?

    最佳答案

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

    10-08 19:38