grails - MissingMethodException 是一项服务 : "No signature of method"

标签 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) 从 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: [<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2648474b43664b5f42494b474f480845494b" rel="noreferrer noopener nofollow">[email protected]</a>]

我所要做的就是保存 EmailConfirmationService 文件,观察者拾取它并重新编译,然后它就可以很好地工作并且再也不会抛出该错误。

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

我已经尝试了以下方法,但还没有任何效果:

  • 干净的构建
  • 更改了函数名称
  • 确保 person 实例存在

有什么想法吗?

最佳答案

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

关于grails - MissingMethodException 是一项服务 : "No signature of method",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28225686/

相关文章:

Grails 路由 - 忽略 css、js 和图像

java - 由于 Grails 中的 java.lang.reflect.MalformedParameterizedTypeException,创建名称为 'pluginManager' 的 bean 时出错

grails - Grails Spring安全插件授权

mongodb - Grails + Mongodb + Spock:执行嵌入式字段查询时抛出NullPointerException

grails - Spring 转换器内的Grails自动接线

hibernate - Hibernate3 Grails3插件

grails - 在 grails 中保存具有多对多关系的对象

hibernate - Grails withNewSession 不会刷新

grails - Grails版本列

java - 如何使用 Grails 邮件插件设置内容类型?