2017-06-06 30 views
0

我在Grails 3.2.10版本中編寫了一個簡單的rest-api Controller。以下是我的系統配置。創建的應用程序也是rest-api配置文件。面向空指針異常:無法在null上調用方法firstMethod()對象:Grails 3.2.10

Grails的版本:3.2.10 Groovy的版本:2.4.10 JVM版本:寫入1.8.0_131

示例代碼如下: 控制器:

package mydevpath 

import grails.rest.* 
import grails.converters.* 

class LoginController { 
static responseFormats = ['json', 'xml'] 

def index() { 
     def loginService 
     def val = loginService.firstMethod() 

     render 'hello World' + val 
    } 
    } 

服務:` 包mydevpath

import grails.transaction.Transactional 

@Transactional 
class LoginService { 
    static scope = "prototype" 

    def firstMethod(){ 
     return 'From Service' 
    } 
} 

在運行並擊中URL時,我面對低於錯誤。

NullPointerException occurred when processing request 
: [POST] /login 
Cannot invoke method firstMethod() on null object. Stacktrace follows: 

java.lang.reflect.InvocationTargetException: null 
     at org.grails.core.DefaultGrailsControllerClass$ReflectionInvoker. 
invoke(DefaultGrailsControllerClass.java:211) 
     at org.grails.core.DefaultGrailsControllerClass.invoke(DefaultGrai 
lsControllerClass.java:188) 

有人能幫我解決這個問題嗎?

問候, 普拉莫德

+0

'loginService.firstMethod()'是造成問題。 'loginService'在哪裏初始化? – Rao

回答

2

您的服務應該索引行動之外聲明:

package mydevpath 

import grails.rest.* 
import grails.converters.* 

class LoginController { 
static responseFormats = ['json', 'xml'] 

def loginService 

def index() { 
    def val = loginService.firstMethod() 

    render 'hello World' + val 
} 
} 
相關問題