我有一个简单的grails(2.0.3)应用程序,它们有一些领域模型,控制器和服务。在我保存并尝试在另一台机器上运行后,我收到了一些奇怪的行为。打开现有的Grails项目
索引页面上生成的控制器链接看起来正确,但被点击重定向到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,并得到本地主机:8080 /应用程序的名字/应用程序的名字与404 。在grails控制台中不显示错误消息。
如果它不是很多,你可以给出再现步骤和/或代码?想尝试一下并检查。 –
最后,我设法解决了这个问题。控制器方法中的最后一个字符串导致了这种奇怪的行为因此,将应用程序从一台机器移至另一台机器会间接造成问题在第一台机器的数据库表中不是空的,应用程序没有丰富的那一行。感谢您的时间! – karejscha