我有一个简单的grails(2.0.3)应用程序,它有几个域模型,控制器和服务。在我保存并尝试在另一台机器上运行后,我得到了一些奇怪的行为。
索引页面上生成的控制器链接看起来正确,但被点击会将我重定向到localhost:8080 / appname / appname,而不是localhost:8080 / appname / controller / action。
但是当我尝试使用“grails generate-domain-class”手动重新创建模型时,生成一个控制器并创建一个服务类,它可以正常工作。似乎某些项目数据在移动后会丢失,或者可能存储在项目文件夹之外的某个位置。
在第一台机器上保存我的工作项目并在第二台机器上重新打开它需要做什么?我的应用程序是在不使用任何IDE的情况下创建的,只需要命令行和文本编辑器。
修改
在尝试重现此行为而不发布所有不必要的代码后,无需将项目移动到另一台机器。
当我创建一个使用注入服务的控制器时(在阅读this之后):
class BookController {
def bookService
def index() {
redirect(action: "list", params: params)
}
def list() {
def result = bookService.list(params)
if(!result.error) {
return [ bookInstanceList: result.bookInstanceList,
bookInstanceTotal: result.bookInstanceTotal ]
}
flash.message = g.message(code: result.error.code, args: result.error.args)
redirect( url: resource(dir:'') )
}
}
并生成视图我尝试在索引页面访问生成的控制器URL并获取localhost:8080 / appname / appname with 404.在grails控制台中没有显示错误消息。
答案 0 :(得分:0)
在将项目移动到其他计算机后,我发现有两件事情有问题。首先是运行
grails upgrade
当它提示您是否要升级项目时,请说“是”。这样做会重写您可能没有移过的任何丢失的配置文件。第二是运行
grails clean
这将删除您可能已从旧系统移动到新系统的任何编译类。