【问题标题】:Opening existing grails project打开现有的 grails 项目
【发布时间】:2012-05-15 21:02:13
【问题描述】:

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

在索引页面上生成的控制器链接看起来正确,但被点击时会将我重定向到 localhost:8080/appname/appname 并使用 404 而不是 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 并使用 404 获取 localhost:8080/appname/appname。grails 控制台中没有显示错误消息。

【问题讨论】:

  • 如果不多,能否给出复制步骤和/或代码?想试试这个并检查一下。
  • 我终于设法解决了这个问题。控制器方法中的最后一个字符串导致了这种奇怪的行为。因此,将应用程序从一台机器转移到另一台机器间接地造成了麻烦。在第一台机器上的数据库表不为空且应用程序不丰富该行。感谢您的宝贵时间!

标签: grails


【解决方案1】:

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

grails upgrade

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

grails clean

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

【讨论】:

  • 感谢您的回复。不幸的是,这并没有解决问题。我ve already tried this solution after reading [this](http://grails.1312388.n4.nabble.com/nondeterministic-behavior-of-g-link-and-g-createLink-td1341333.html) post. That looks very similar, but even after both grails upgrade` 和grails clean 我还在得到这个“双appname 模式”。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-05-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-12-18
  • 2012-07-22
相关资源
最近更新 更多