2017-06-06 1 views
0

Grails 3.2.10バージョンでシンプルなrest-apiコントローラーを作成しました。以下は私のシステム構成です。作成されたアプリケーションも残りのAPIプロファイルです。ヌルポインターに直面する例外:ヌルでメソッド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) 

問題を手伝ってもらえますか?

よろしく、 Pramodさん

+0

'loginService.firstMethod()は'問題を引き起こしています。 'loginService'はどこで初期化されていますか? – Rao

答えて

2

は、あなたのサービスでは、indexアクションの外側で宣言する必要があります。

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 
} 
} 
関連する問題