| <html> |
| <head> |
| <title>Grails Runtime Exception</title> |
| <style type="text/css"> |
| .message { |
| border: 1px solid black; |
| padding: 5px; |
| background-color:#E9E9E9; |
| } |
| .stack { |
| border: 1px solid black; |
| padding: 5px; |
| overflow:auto; |
| height: 300px; |
| } |
| .snippet { |
| padding: 5px; |
| background-color:white; |
| border:1px solid black; |
| margin:3px; |
| font-family:courier; |
| } |
| </style> |
| </head> |
| |
| <body> |
| <h1>Grails Runtime Exception</h1> |
| <h2>Error Details</h2> |
| |
| <div class="message"> |
| <strong>Error ${request.'javax.servlet.error.status_code'}:</strong> ${request.'javax.servlet.error.message'.encodeAsHTML()}<br/> |
| <strong>Servlet:</strong> ${request.'javax.servlet.error.servlet_name'}<br/> |
| <strong>URI:</strong> ${request.'javax.servlet.error.request_uri'}<br/> |
| <g:if test="${exception}"> |
| <strong>Exception Message:</strong> ${exception.message?.encodeAsHTML()} <br /> |
| <strong>Caused by:</strong> ${exception.cause?.message?.encodeAsHTML()} <br /> |
| <strong>Class:</strong> ${exception.className} <br /> |
| <strong>At Line:</strong> [${exception.lineNumber}] <br /> |
| <strong>Code Snippet:</strong><br /> |
| <div class="snippet"> |
| <g:each var="cs" in="${exception.codeSnippet}"> |
| ${cs?.encodeAsHTML()}<br /> |
| </g:each> |
| </div> |
| </g:if> |
| </div> |
| <g:if test="${exception}"> |
| <h2>Stack Trace</h2> |
| <div class="stack"> |
| <pre><g:each in="${exception.stackTraceLines}">${it.encodeAsHTML()}<br/></g:each></pre> |
| </div> |
| </g:if> |
| </body> |
| </html> |