Grails PageFragmentCachingFilter.doFilter抛出NPE

时间:2014-12-08 17:36:22

标签: rest grails caching nullpointerexception

我有一个REST控制器,我正在发布JSON数据。单元测试工作正常,但是当从浏览器发布数据时,我得到一个NPE。打开错误GRAILS-11860,但不要认为他们会很快得到它,如果他们这样做(有些错误已经开放多年),所以想到这里可能会有更好的运气。

重现的步骤

  • 使用git clone -b grails-bugs --single-branch https://github.com/abhijitsarkar/grails.git
  • 克隆分支grails-bugs
  • cd movie-directory
  • grails run-app
  • 来自浏览器http://localhost:8080/movie-database/movies/create
  • 在文本框中输入任何内容,然后点击“创建”。

似乎与{<1}}中明显修复的bug GRAILS-10402 相似(嗯?)。通过将2.3-RC2放入grails.cache.enabled = false来禁用缓存仍然会从Config.groovy引发NPE。

堆栈跟踪

ThreadPoolExecutor

2 个答案:

答案 0 :(得分:1)

通过修复视图和控制器方法之间的命名错误来解决此错误。控制器有def createUser(),执行了render(view: 'createNewUser')。到现在为止还挺好。服务表格,你可以填写。但是,请查看控制器方法名称和.gsp名称与(def createUser != createNewUser.gsp)不匹配然后,表单的提交操作转到def saveUser(),它尝试执行render view: 'createUser',不存在.gsp文件,导致NPE

答案 1 :(得分:0)

我在没有数据库连接的Web应用程序中遇到了同样的问题。我已经完全删除了index_t文件,但我的一些服务和控制器仍被标记为事务性的。当没有数据库时,没有可以处理事务的事务管理器。当我删除事务标记时,它工作正常。

请参阅此博文:Using Grails without a database

获取NPE仍然是一个非常难看的错误信息,所以我仍然认为它是Grails中的错误。