beego 程序执行的时候一直提示 panic: 'GetSysStatus' method doesn't exist 报错?

我是在 github 上 clone 的别人的源码,走了一遍流程 mod init mod tidy build . 然后运行生成的那个可执行文件,一点问题都没有。但是我做了点改动:

// 路由设置
beego.Router("/", &controllers.MainController{}, "*:Index")
beego.Router("/login", &controllers.MainController{}, "*:Login")
beego.Router("/logout", &controllers.MainController{}, "*:Logout")
beego.Router("/profile", &controllers.MainController{}, "*:Profile")
beego.Router("/gettime", &controllers.MainController{}, "*:GetTime")
//下面这行是我加的
beego.Router("/getsysstatus", &controllers.MainController{}, "*:GetSysStatus")
beego.Router("/help", &controllers.HelpController{}, "*:Index")
beego.AutoRouter(&controllers.TaskController{})
beego.AutoRouter(&controllers.GroupController{})

beego.BConfig.WebConfig.Session.SessionOn = true
beego.Run()

我在 app/controllers/main.go 文件里面也加了对应的方法:

// 获取系统时间
func (this *MainController) GetTime() {
    out := make(map[string]interface{})
    out["time"] = time.Now().UnixNano() / int64(time.Millisecond)
    this.jsonResult(out)
}

// 获取系统当前状态,这个方法是我加的
func (this *MainController) GetSysStatus() {
    out := make(map[string]interface{})
    out["time"] = 1
    this.jsonResult(out)
}

然而执行新生成的可执行文件一直报错:

panic: 'GetSysStatus' method doesn't exist in the controller MainController

goroutine 1 [running]:
github.com/astaxie/beego.(*ControllerRegister).addWithMethodParams(0xabc15c, {0xac38af, 0x4418b1}, {0xbb85e8, 0xc000238a20}, {0x0, 0x0, 0x0}, {0xc0000fbf50, 0x1, ...})
        /home/yhm/go/pkg/mod/github.com/astaxie/beego@v1.12.3/router.go:183 +0x788
github.com/astaxie/beego.(*ControllerRegister).Add(...)
        /home/yhm/go/pkg/mod/github.com/astaxie/beego@v1.12.3/router.go:163
github.com/astaxie/beego.Router(...)
        /home/yhm/go/pkg/mod/github.com/astaxie/beego@v1.12.3/app.go:258
main.main()
        /home/yhm/web/webcron/main.go:39 +0x3dd

请大神帮忙看看,这是为啥啊?

奇怪了,我把我加的那个路由注释了,然后把 app/controllers/main.go 文件里面的代码都删了,重新build,然后都能运行,貌似不使用 app/controllers/main.go 这个文件一样?

阅读 2.2k
1 个回答

解决了,这种从 github 拉下来的代码 import 都是远程的代码,我把 import 相关的都改成本地文件了,现在没问题了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题