面对空指针异常:无法在null对象上调用方法firstMethod():Grails 3.2.10

时间:2017-06-06 02:23:10

标签: grails groovy

我在Grails 3.2.10版本中编写了一个简单的rest-api控制器。以下是我的系统配置。创建的应用程序也是rest-api配置文件。

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'
  }
}

在运行并点击网址时,我面临以下错误。

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)

有人可以帮我解决问题吗?

此致 普拉莫德

1 个答案:

答案 0 :(得分:3)

您的服务应在索引操作之外声明:

<form #formList="ngForm" (ngSubmit)="Save(formList)">
    <div *ngFor="let item of data">
      <p>{{item.name}}</p>
      <input type="radio" name="{{item.id}}" [value]="1" [(ngModel)]="item.isSelected" required>Foo
      <input type="radio" name="{{item.id}}" [value]="2" [(ngModel)]="item.isSelected">Bar
      <div *ngIf="formList.controls.item?.id.required">
        The radio is required!
      </div>
    </div>
  <button type="submit">Save</button>
</form>