0

我有一个简单的 grails(2.0.3) 应用程序,其中包含几个域模型、控制器和服务。在我保存它并尝试在另一台机器上运行后,我得到了一些奇怪的行为。

索引页面上生成的控制器链接看起来是正确的,但被点击时会将我重定向到 localhost:8080/appname/appname 并使用 404 而不是 localhost:8080/appname/controller/action。

但是当我尝试使用“grails generate-domain-class”手动重新创建模型时,生成一个控制器并创建一个服务类,它工作正常。似乎某些项目数据在移动后丢失了,或者它可能存储在我的项目文件夹之外的某个地方。

我需要做什么才能将我的工作项目保存在第一台机器上并在第二台机器上重新打开它?我的应用程序是在不使用任何 IDE 的情况下创建的,只使用命令行和文本编辑器。

编辑

在尝试重现此行为而不发布所有不必要的代码后,无需将项目移动到另一台机器就可以了。

当我创建一个使用注入服务的控制器时(阅读后

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 并使用 404 获取 localhost:8080/appname/appname。grails 控制台中没有显示错误消息。

4

1 回答 1

0

在将项目移动到另一台机器后遇到 grails 问题时,我发现有两件事有帮助。首先是运行

grails upgrade

当它提示您是否要升级项目时,请说是。这样做将重写您可能没有移过的任何丢失的配置文件。二是跑

grails clean

这将删除您可能已经从旧系统转移到新系统的所有编译类。

于 2012-05-07T12:52:50.403 回答