11

在 grails 中,我如何向 UrlMappings.groovy(例如:println)添加一些代码,以便我可以弄清楚请求 URI 是什么以及哪个映射被命中(如果有的话)?

背景:

在这种情况下,有两台服务器根据文件扩展名提供不同的服务。因此,两台服务器需要始终查看文件扩展名才能继续进行错误处理。否则,服务器会感到困惑,并且 1 提供 404 页面而不是我们的 500 页面。

更大的图景涉及由于 NullPointerException 之类的原因而获得 500 响应,并通过代码跟踪它以查看发生了什么。

我在http://jetlet.blogspot.com/2010/08/grails-exception-handling-with-response.html添加了如下代码:

"500" (controller: "error", action: "internalError")

在对此进行测试时,我故意抛出 NullPointerException (NPE)。当在浏览器的地址栏中输入 URL 时,调用 500 处理并提供 500 页面。但是,当将表单发布到服务器并使用 NPE 故意破坏处理代码时,不会调用“500”处理代码。表单操作中的 URL 似乎以扩展名结尾。因此,不确定为什么 GET(浏览器 URL)和 POST(表单提交)之间的行为差​​异。

感谢您提供有关跟踪此问题的见解和想法!

4

1 回答 1

11

在 Config.groovy 中,您可以通过添加修改 url 映射事件的 log4j 设置

all 'org.codehaus.groovy.grails.web.mapping'

到您现有的 log4j 设置。all 是最详细的设置,因此如果它开始给您太多,可以将其调回。您可以在此处的官方 grails 文档中找到更多信息:http: //grails.org/doc/latest/guide/3.%20Configuration.html

于 2011-01-25T21:24:19.253 回答