duanfu6160 2014-09-02 03:29
浏览 178
已采纳

Golang-为什么在ServeHTTP函数中发生此错误:反射:调用reflect.Value.Call对零值

My code and error message are in here: https://gist.github.com/WithGJR/a700e5d5bd35b5c8eef2

Could anyone explain for me why this error occured and how to fix it? Thanks.

  • 写回答

1条回答 默认 最新

  • dongpo2340 2014-09-02 03:33
    关注

    Because value.MethodByName(info.controllerMethodName) probably returns an invalid method, you should check method.IsValid().

    When something like this happens you start adding a bunch of log.Printlns to see what's happening, well until a proper debugger is introduced.

    //edit

    router.Get("/", controllers.IndexController{}, "Index")
    

    You're passing a value, func (this *IndexController) Index() is defined on the pointer so your MethodByName isn't working right, change your router.Get to :

    router.Get("/", &controllers.IndexController{}, "Index")
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥20 keepalive配置业务服务双机单活的方法。业务服务一定是要双机单活的方式
  • ¥50 关于多次提交POST数据后,无法获取到POST数据参数的问题
  • ¥15 win10,这种情况怎么办
  • ¥15 如何在配置使用Prettier的VSCode中通过Better Align插件来对齐等式?(相关搜索:格式化)
  • ¥100 在连接内网VPN时,如何同时保持互联网连接
  • ¥15 MATLAB中使用parfor,矩阵Removal的有效索引在parfor循环中受限制
  • ¥20 Win 10 LTSC 1809版本如何无损提升到20H1版本
  • ¥50 win10 LTSC 虚拟键盘不弹出
  • ¥30 微信小程序请求失败,网页能正常带锁访问
  • ¥15 Matlab求解微分方程,如何用fish2d进行预优?