Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
初始化Grails 2.4.3后,LinkGenerator对象为null_Grails - Fatal编程技术网

初始化Grails 2.4.3后,LinkGenerator对象为null

初始化Grails 2.4.3后,LinkGenerator对象为null,grails,Grails,我试图生成serverBaseUrl,然后用它填充一个字段。 我查阅了很多关于如何使用LinkGenerator的说明,但我一直在LinkGenerator对象上遇到空指针异常 我的工作内容: import org.codehaus.groovy.grails.web.mapping.LinkGenerator MyService{ def linkGenerator String client_url = getServerUrl() String getServ

我试图生成serverBaseUrl,然后用它填充一个字段。 我查阅了很多关于如何使用LinkGenerator的说明,但我一直在LinkGenerator对象上遇到空指针异常

我的工作内容:

import org.codehaus.groovy.grails.web.mapping.LinkGenerator

MyService{
    def linkGenerator

    String client_url = getServerUrl()

    String getServerUrl(){
        linkGenerator.serverBaseURL
    }
}
我尝试过使用LinkGenerator LinkGenerator,重新定位它,并在Config.groovy中向grails.serverURL添加一个值。字符串client_url位于触发器上,因此在程序运行之前不会调用该方法


我使用的是Grails2.4.3和Java1.8

这个bean实际上被称为
grailsLinkGenerator
,因此您需要将它声明为
LinkGenerator grailsLinkGenerator
(或
def grailsLinkGenerator


我找不到它的官方文档,但请查看示例。

您的方法有几个问题。一个是您可能想要访问
grailsLinkGenerator
bean

 class MyService {
      def grailsLinkGenerator

       String getServerUrl(){
           grailsLinkGenerator.serverBaseURL
      }
 }
在您的代码中有以下内容:

class MyService{
    def linkGenerator

    String client_url = getServerUrl()

    String getServerUrl(){
        linkGenerator.serverBaseURL
    }
}
除了bean名称问题之外,您还试图在依赖项注入发生之前初始化
client\u url
。现在还不清楚为什么你需要这个属性,但如果你真的想要这样的东西,试试这个

import org.springframework.beans.factory.InitializingBean

class MyService implements InitializingBean {
    def grailsLinkGenerator
    String client_url

    String getServerUrl(){
        grailsLinkGenerator.serverBaseURL
    }

    void afterPropertiesSet() {
        client_url = getServerUrl()
    }
}

我希望这会有帮助。

谢谢,这是非常彻底的。