grails - Grails 2.4.5和404变成500

标签 grails nullpointerexception

我有一个需要在gsp重装有效的情况下运行的应用程序(不要判断我,我已经自己每天都这样做了)。该应用程序最近已从2.2.3移植到2.4.5,并且几乎完美无瑕。

现在,在 Controller 的作用下,我这样写:

render(view:red,model:pMap());

其中,“red”是 View 的路径,而pMap会生成作用域。

除了一件事,一切都很好。当“红色”路径引用缺少的资源时,我希望它会像以前版本中那样经过404。

相反,我得到的是一个可怕的事实:
NullPointerException occurred when processing request: [GET] /app/ass
Stacktrace follows:
java.lang.NullPointerException
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)

不用说,处理错误的操作将检测到500,而不是404。

知道为什么会发生这种情况吗?我能解决这个烂摊子吗?

提前致谢

最佳答案

您可以在渲染调用之前检查 View 文件是否存在,例如here。如果不存在,您可以将状态码更改为404 link

据我所知,它抛出一个NPE,因为在null映射值上org.codehaus.groovy.grails.web.metaclass.RenderDynamicMethod#renderView中调用了toString(),因为该 View 不存在。

关于grails - Grails 2.4.5和404变成500,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31113389/

相关文章:

Grails Controller 测试在渲染模板时对模型进行断言?

java - Grails 中的使用和 OAuth2 安全 API (Twitter)

java - JTextField 不工作

java - awt eventqueue 0 空指针异常错误

java - JAXB RI ClassFactory 中的空指针异常

java - 在没有代码的情况下持续获取 NullPointerException

Grails 后台进程

grails - 如何以编程方式从grails中删除 Controller ?

grails - GSP从多个列表中选择

java - Android:openFileOutput 抛出 NullPointerException