0

我有两个控制器动作,一个接一个,我使用 grails flash 范围将我的对象数据“传递”到第二个控制器动作(在同一个控制器中)。

这在使用包含的标准 H2 数据库的开发模式下工作正常,但在我部署到 mysql 数据库的生产模式下不起作用。我不认为这会有所作为(数据库),所以我有点困惑。当我在目标/生产机器上尝试完全相同的事情时,flash 变量在第二个控制器操作中为空。我能够看到从动作 1 到动作 2 的流程,所以这并不神秘。你知道出了什么问题吗?我正在运行 grails 2.2.4。

4

1 回答 1

0

我有这样的问题。我有一个 heroku 插件,它依赖于一些数据库会话插件,其中包含一些已弃用的内容。如果我查看终端窗口并调查日志,我会很容易找到这个插件。我还使用该grails dependency-report命令来跟踪哪个插件在损坏的插件中调用。

我删除了 heroku 插件,现在在生产模式下我的 flash 消息正在显示。

这表明闪存范围以某种方式连接到持久层。因为当闪存消息应该出现时我在终端中看到了这样的错误ERROR databasesession.GormPersisterService - org.codehaus.groovy.grails.web.servlet.GrailsFlashScope Message: org.codehaus.groovy.grails.web.servlet.GrailsFlashScope和一个巨大的堆栈跟踪。

我了解到,默认情况下,闪存消息也在 prod 模式下工作。但是错误可以阻止这一点。还有休眠错误。所以,尽量消除错误。它们可能是由插件引起的。也许是一些不兼容的插件。有些插件适用于 hibernate4,但不适用于 hobernate3,反之亦然。

于 2015-03-18T21:31:48.673 回答