【发布时间】: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