我的Grails App Server不断重复启动

时间:2010-01-23 03:28:23

标签: grails

我对我的应用程序进行了各种小的更改,并且在某些时候,grails应用服务器决定它需要重新启动一遍又一遍。

其他人都看到过这种疯狂行为。我无法真正上传我的整个应用程序作为示例。我不知道我做了什么。我没有进行任何配置更改或插件更改。

我正在使用grails 1.2。

- 当我写这封电子邮件时,我再次尝试了,我的行为略有不同。

它会重新启动应用程序,并显示它正在编译1源文件并继续重新编译一条消息。

6 个答案:

答案 0 :(得分:12)

不确定这是不是你的问题,但是当你的某个类名或包有一些小错误时,我发现这样的事情,比如你在目录org.grails中有一个包org.grails.plugin包含.foo。由于某种原因导致重新编译。

为了捕获一些错误,我修改了我的GRAILS_HOME \ scripts_GrailsCompile.groovy,使其打印出正在编译的文件。

修改:

搜索ant.groovyc并为参数添加listfiles:“yes”。

示例:

ant.groovyc(destdir:classesDirPath,
  classpathref:classpathId,
  listfiles:"yes",
  encoding:"UTF-8",
  compilerPaths.curry(classpathId, false)
) 

这样,如果您看到完全相同的文件不断重新编译,您就知道在哪里查看。

答案 1 :(得分:3)

非常感谢kdj指出未来的时间戳也会导致连续重启错误。

因此,至少有两种方式可以实现连续重启 1)包名称与文件夹结构不匹配 2)一个或多个类文件具有相对于服务器日期的未来时间戳

在我的情况下,在DST转换期间我的开发盒上发生了奇怪的事情,并且某些生成的类文件的时间戳在将来的2天内设置。

答案 2 :(得分:3)

我知道这是一个老问题,但我遇到了同样的问题。启动grails应用程序会导致它一遍又一遍地重新编译。我的问题与Groovy类文件的名称有关,该文件与文件中类的名称不匹配。代码很好,但名字不同。一旦我更改了名称以使它们同步,问题就解决了。要建立在已接受的答案上,您可以使用:

grails run-app -verboseCompile

使grails在反复编译时打印出有问题的脚本/类文件。它引导我进入违规模块。如果查看脚本'GRAILS_HOME \ scripts_GrailsCompile.groovy`,您可以看到他们将此选项放置到位,以便您可以在启动时覆盖该值。如果可以提供帮助,您可能不想修改原件(如原始的,已接受的答案)。

这是在grails 1.3.7中完成的。

答案 3 :(得分:1)

如果grails在开发模式下运行,并且源代码在远程文件系统上,并且远程文件服务器将来有时间设置,那么这就是你将得到的。

答案 4 :(得分:0)

我遇到了同样的问题,两件不同的事情为我解决了。一个是简单地重启系统而另一个是运行grails run-app。详细编译没有显示我的项目有任何问题。

答案 5 :(得分:0)

另外,请确保您的fileName.groovyclassName匹配。

我从另一个项目中复制了一些代码并遇到了这种情况。