如何从 bootstrap 显示 grails 错误

发布于 2024-09-15 06:52:05 字数 337 浏览 5 评论 0原文

我刚刚从 bootstrap.groovy 中发现了烦人的错误。例如,如果我犯了错误,例如未声明的变量,应用程序将继续运行,然后当我尝试从网络访问应用程序时,它将显示

HTTP 状态 404 -

输入状态报告

消息

描述请求的资源() 不可用。阿帕奇 Tomcat/6.0-快照

在控制台中没有出现错误消息...所以它让人困惑。假设我编辑了 10 个引导程序,其中一个我确实犯了一个错误,那么找到那个小错误就会变得非常困难。

知道如何解决这个问题吗?是显示这些错误的提示吗?

I just found annoying bug from my bootstrap.groovy. If I did a mistake for example, like undeclared variable, the apps keep running and then when I tried to access the apps from web it will display

HTTP Status 404 -

type Status report

message

description The requested resource ()
is not available. Apache
Tomcat/6.0-snapshot

in the console there is no error messages appear ... so it makes confuse. suppose I edit 10 bootstrap and in one of them I did make a mistakes, it would become so difficult to find that little bug.

any idea how to solve this problem ? is it a tips to display those errors ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

苹果你个爱泡泡 2024-09-22 06:52:05

我不知道您在引导程序中做了什么,但如果在保存域对象时失败,那么您可以像在控制器中一样将它们记录为错误。如果您希望将错误发送到控制台,只需设置一个控制台附加程序:

//Remember, save calls validate()
if(!myObject.save()) {
    myObject.errors.allErrors.each {
        log.error it
    }
}

参考:

I don't know what you're doing in your bootstrap, but if its failing when you're saving domain objects, then you can log those as errors the same way you would in a controller. If you want the errors to go to a console, just set up a console appender:

//Remember, save calls validate()
if(!myObject.save()) {
    myObject.errors.allErrors.each {
        log.error it
    }
}

References:

落花随流水 2024-09-22 06:52:05

对于其他时间的使用,您不仅可以在 myObject.save() 等域对象上使用此显示错误方法,还可以在任何具有异常或类似服务的方法上使用:

def searchService 

searchService.search(person)  // inside hibernate create criteria or any db actitvity or ...

seachService.errors.allErrors,each {
flash.message = message(code:'default.search.error.message',default : it) //see it in freindly view
 //Or println("${new Date()}"it)
}



you need a lable flash message on your in case of other files than bootstrap 

<g:set var="entityName" value="${message(code: 'domainClassName.label', default: 'what ever')}" />
        <title><g:message code="default.list.label" args="[entityName]" /></title>


    <h1><g:message code="default.list.label" args="[entityName]" /></h1>
            <g:if test="${flash.message}">
            <div class="message" role="status">${flash.message}</div>
            </g:if>

For other time use you can use this show error method not only on domain object like myObject.save() but also any method having an exception or a service like this one :

def searchService 

searchService.search(person)  // inside hibernate create criteria or any db actitvity or ...

seachService.errors.allErrors,each {
flash.message = message(code:'default.search.error.message',default : it) //see it in freindly view
 //Or println("${new Date()}"it)
}



you need a lable flash message on your in case of other files than bootstrap 

<g:set var="entityName" value="${message(code: 'domainClassName.label', default: 'what ever')}" />
        <title><g:message code="default.list.label" args="[entityName]" /></title>


    <h1><g:message code="default.list.label" args="[entityName]" /></h1>
            <g:if test="${flash.message}">
            <div class="message" role="status">${flash.message}</div>
            </g:if>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文