java - Grails - 无法从 Controller 调用服务 --> 总是得到 "Cannot invoke method on null object error"

标签 java grails groovy controller service

我有一个 grails 应用程序,我正在按照此处的教程进行操作:
http://www.grails.org/Services

我有一些代码,例如

import org.springframework.beans.factory.InitializingBean

class SubmitRequestService implements InitializingBean{
    def GrailsApplication1
    def setting

    void afterPropertiesSet(){
        this.setting = GrailsApplication1.config.setting
    }

    def void sendHistoricalContract(HistoricalContract hc_instance){
        //... blah blah whatever code      
    }
}

class SubmitRequestController {    
    def submitRequestService
    static allowedMethods = [save: "POST", update: "POST", delete: "POST"]

    def index = {
        // .... blah blah whatever code
        submitRequestService.sendHistoricalContract(historicalContractInstance)
    }    
}

不,无论我做什么,我似乎都无法将服务注入(inject)到 Controller 中。每当我到达调用服务的行时,我都会收到错误:

ERROR errors.GrailsExceptionResolver - Cannot invoke method sendHistoricalContract() on null object

我做错了什么?

提前致谢

最佳答案

GrailsApplication1 看起来很奇怪 - 这是从哪里来的?如果您想访问 GrailsApplication 实例来获取配置,请对 grailsApplication Spring bean 使用依赖项注入(inject):

class SubmitRequestService implements InitializingBean {

   private setting

   def grailsApplication

   void afterPropertiesSet() {
       setting = grailsApplication.config.setting
   }

   void sendHistoricalContract(HistoricalContract hc_instance) {
      //... blah blah whatever code      
   }
}

我的猜测是 GrailsApplication1 导致服务出现问题,导致其无法注入(inject) Controller ,但我认为它会在启动时因异常而崩溃。尝试运行 grails clean 来强制完全重新编译。

关于java - Grails - 无法从 Controller 调用服务 --> 总是得到 "Cannot invoke method on null object error",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4559270/

相关文章:

grails - 如何使用 Groovy 修剪列表中的所有元素?

java - 尝试使用 groovy 脚本运行程序在 JIRA 中删除时出现 NullPointerException

从 String 动态实例化类的 Groovy 方法

XmlSlurper.appendNode 不改变大小

grails - grails 中 render(...) 和 g.render(...) 的区别

java - 空对象引用上的 navigationView setText 致命异常

java - ehcache与spring 3.0集成

java - 尝试创建一个结构化数组Java

java - Cucumber Selenium 使用 Excel 文件作为数据表

Grails 和 Log4J : How to logs in different files with same level?