我有一个Java play 2控制器,它接受如下查询字符串参数:

控制器:

public static Result syncInterests(
        String lastsyncdate,
        String fooid) {
}


测试:

Result result = routeAndCall(fakeRequest(GET, "/foo/sync?fooid=123"));


但是得到这个错误。这是什么意思?当然,这是一个Java操作。

failed: This is not a JavaAction and can't be invoked this way.


编辑:

这就是我在路线中定义的方式。 lastsyncdate是可选的。

GET  /foo/sync  controllers.FooSync.syncInterests(lastsyncdate: String, fooid: String)


编辑:

我无法使它正常工作。因此,我使用此功能进行测试以继续进行其他工作。

Result result = callAction(controllers.routes.ref.FooSync.syncInterests(time, fooId));

最佳答案

我认为您的网址“ / foo / sync?fooid = 123”对于控制器不正确。它应该是“ / foo / syncInterests?fooid = 123”,并且syncInterests方法应该具有return语句。

10-06 14:44