Grails 运行应用程序和战争执行之间的不一致性

Grails 运行应用程序和战争执行之间的不一致性,grails,Grails,我有一个不需要数据库的Grails应用程序,它是一个REST客户机。当我使用grails run应用程序运行它时,一切都按计划进行。但当我在Tomcat中将其作为war运行时,我得到以下消息: Class: java.lang.ArrayIndexOutOfBoundsException Message: 1 Trace: Line | Method ->> 1142 | runWorker in java.util.concurrent.ThreadPoolExec

我有一个不需要数据库的Grails应用程序,它是一个REST客户机。当我使用grails run应用程序运行它时,一切都按计划进行。但当我在Tomcat中将其作为war运行时,我得到以下消息:

Class:    java.lang.ArrayIndexOutOfBoundsException
Message:  1
Trace:     Line | Method
->> 1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|    617 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run . . . in java.lang.Thread

Caused by GroovyPagesException: Error processing GroovyPageView: 1
->>   38 | runWorker in /index.gsp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 

Caused by ArrayIndexOutOfBoundsException: 1
->>   64 | doCall    in gsp_coreQueriesindex_gsp$_run_closure2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|     88 | run       in gsp_coreQueriesindex_gsp
|   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    617 | run       in java.util.concurrent.ThreadPoolExecutor$Worker
^    744 | run . . . in java.lang.Thread

我不知道该把重点放在哪里。我使用了Maven和Ivy,没有任何结果。

非常感谢您的支持。我用一个更简单的页面替换了index.gsp页面,一切正常。

很难判断出哪里出了问题。当您运行应用程序时,它使用dev环境,当您运行grailswar时,它使用prod环境生成war。您可以尝试查看环境设置,看看是否有问题。prod和dev模式之间存在差异。例如,在dev模式下,flash消息不起作用,这在任何地方都没有记录。在过去,帮助我发现类似问题的一件事是执行grails run war,鉴于您的tomcat和java版本非常接近,这往往会暴露出同样的问题。通过这种方式,您可以在本地环境中进行调试。@lxknvlk从未出现过这样的问题。另一方面,我没有在最新版本中使用flash.message。这显然是一个bug,所以若你们面对它,最好在GrailsJirasorry中提出这个问题。一个家伙在prod env上测试,他对flash消息没有问题。看来问题出在我的设置中。