【发布时间】:2017-05-24 01:52:37
【问题描述】:
当我在 app.conf 中启用 module.jobs 时出现以下错误 尝试重新下载模块包。
在 cron 包中提供。没用。
INFO 2017/05/01 18:51:12 main.go:32: Running revel server
panic: reflect: call of reflect.Value.Type on zero Value
goroutine 1 [running]:
panic(0xbd1b00, 0xc4201e7c20)
/usr/local/go/src/runtime/panic.go:500 +0x1a1
reflect.Value.Type(0x0, 0x0, 0x0, 0x0, 0x0)
/usr/local/go/src/reflect/value.go:1670 +0x224
github.com/company/project/vendor/github.com/revel/revel.findControllers(0x137d2c0, 0xcaba60, 0xc4202a26e0, 0x4, 0x10)
/root/git/go/src/github.com/company/project/vendor/github.com/revel/revel/controller.go:329 +0x9f2
github.com/company/projectvendor/github.com/revel/revel.RegisterController(0xca73e0, 0x0, 0xc420028118, 0x1, 0x1)
/root/git/go/src/github.com/company/project/vendor/github.com/revel/revel/controller.go:414 +0x219
main.main()
/root/git/go/src/github.com/company/project/web/app/tmp/main.go:90 +0xbd0
它甚至没有进入我的应用程序的初始化部分。 第二个我禁用 app.conf 中的 module.jobs 行 revel 工作正常。
编辑第 90 行
revel.RegisterController((*controllers0.Jobs)(nil),
[]*revel.MethodType{
&revel.MethodType{
Name: "Status",
Args: []*revel.MethodArg{
},
RenderArgNames: map[int][]string{
28: []string{
"entries",
},
},
},
})
【问题讨论】:
-
您可以在
main.go:90中显示您的代码吗?或者是哪一行正在调用revel.RegisterController。 -
不知道你为什么将
nil作为控制器传递,但这就是它崩溃的原因。reflect: call of reflect.Value.Type on zero Value在您的情况下(*controllers0.Jobs)(nil)是 零值。 -
不知道我正在向控制器传递任何东西。我所做的就是启用模块并重新启动狂欢。
-
它适用于其他控制器就好了。
-
我的错,我现在明白了,这就是你在狂欢中注册控制器的方式,请忽略我。