rest - Grails PageFragmentCachingFilter.doFilter 抛出 NPE

标签 rest grails caching nullpointerexception

我有一个 REST Controller ,我要将 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
  • 在文本框中输入任何内容,然后单击创建。

  • 似乎类似于错误 GRAILS-10402这显然是在 2.3-RC2 中修复的(嗯?)。通过放置 grails.cache.enabled = false 禁用缓存在 Config.groovy仍然从 ThreadPoolExecutor 抛出 NPE .

    堆栈跟踪
    java.lang.NullPointerException
        at grails.plugin.cache.web.filter.PageFragmentCachingFilter.doFilter(PageFragmentCachingFilter.java:198)
        at grails.plugin.cache.web.filter.AbstractFilter.doFilter(AbstractFilter.java:63)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
    

    最佳答案

    刚刚通过修复 View 和 Controller 方法之间的命名错误来解决此错误。 Controller 有 def createUser() , 做了一个 render(view: 'createNewUser') .到现在为止还挺好。表格已送达,您可以填写。但是,看看 Controller 方法名称和 .gsp 名称如何不匹配 (def createUser != createNewUser.gsp)然后,表单的提交操作转到了 def saveUser() ,它试图做一个 render view: 'createUser' ,它不作为 .gsp 文件存在,导致 NPE

    关于rest - Grails PageFragmentCachingFilter.doFilter 抛出 NPE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27363624/

    相关文章:

    http - 跟踪后退按钮

    java - 在 Android 应用程序中使用 http 客户端模拟表单发布?

    java - 如何从 grails 和 groovy 的下拉列表中选择小于或大于的年龄

    python - 有没有办法使用生存时间装饰器来缓存 Python 3.5 定义?

    REST API : what happens to sub resource in case of PUT

    java - Android 401 使用 HttpURLConnection 连接到 REST 服务时出错

    grails - 在Grails taglib中获取动态Config参数的问题

    grails - 解释分页中的分页

    ios - 使用本地镜像文件时清除 UIWebView 缓存

    ios - 了解核心视频 CVPixelBufferPool 和 CVOpenGLESTextureCache 语义