gpt4 book ai didi

grails - "Cannot invoke method on null object"将服务注入(inject) Controller 时

转载 作者:行者123 更新时间:2023-12-02 14:48:19 25 4
gpt4 key购买 nike

我创建了一个全新的 Grails 4.0.0 应用程序并使用 grails cmd 创建了一个域/ Controller 。我还创建了一个简单的服务,它将“Hello World”返回给 Controller ,然后 Controller 将其呈现到屏幕上。但是,当我尝试调用服务方法时,我得到“无法在空对象上调用方法” - 似乎依赖注入(inject)无法正常工作。

我尝试过使用“def”声明服务,也尝试过按类名声明——这两种方法似乎都不起作用。

package uk.org.pmms

import grails.gorm.transactions.Transactional

@Transactional
class HelloWorldService {

def hello() {
return "Hello World"
}
}
package uk.org.pmms

class ClientController {

//static scaffold = Client

def helloWorld

def show(Long id){
Client clientInstance = Client.get(id)
respond ("client": clientInstance, "message": helloWorld.hello())
}
}

我希望 Controller 返回显示在 GSP 页面上的 clientInstance 数据和字符串“Hello World”。

当我删除响应语句的“消息:”部分时,它会正确显示客户端信息,因此问题肯定只是服务调用。

最佳答案

为您的服务创建的 bean 的名称将是 helloWorldService

class ClientController {

def helloWorldService // <--- corrected bean name for auto wire by name.

def show(Long id){
Client clientInstance = Client.get(id)
respond ("client": clientInstance, "message": helloWorldService.hello())
}
}

关于grails - "Cannot invoke method on null object"将服务注入(inject) Controller 时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57920084/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com