面对空指针异常:无法在空对象上调用方法 firstMethod():Grails 3.2.10
Posted
技术标签:
【中文标题】面对空指针异常:无法在空对象上调用方法 firstMethod():Grails 3.2.10【英文标题】:Facing Null Pointer Exception: Cannot invoke method firstMethod() on null Object : Grails 3.2.10 【发布时间】:2017-11-06 21:42:50 【问题描述】:我在 Grails 3.2.10 版本中写了一个简单的 rest-api 控制器。下面是我的系统配置。创建的应用也是rest-api profile。
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)
有人可以帮我解决这个问题吗?
问候, 普拉莫德
【问题讨论】:
loginService.firstMethod()
导致问题。 loginService
初始化在哪里?
【参考方案1】:
您的服务应该在 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
【讨论】:
以上是关于面对空指针异常:无法在空对象上调用方法 firstMethod():Grails 3.2.10的主要内容,如果未能解决你的问题,请参考以下文章
致命异常: main ,尝试在空对象引用上调用虚拟方法 [重复]
在 Activity 中调用 Fragment 方法会导致空指针异常
无法从列表视图中获取项目位置:尝试在空对象引用上调用虚拟方法...