как отобразить ошибку Grails из начальной загрузки - PullRequest
1 голос
/ 23 августа 2010

Я только что нашел раздражающую ошибку в моем bootstrap.groovy.Например, если я допустил ошибку, например, необъявленную переменную, приложения продолжат работу, а затем при попытке доступа к приложениям из Интернета отобразится

HTTP Status 404 -

typeОтчет о состоянии

сообщение

описание Запрошенный ресурс () недоступен.Apache Tomcat / 6.0-snapshot

, в консоли нет сообщений об ошибках, появляются ... поэтому это сбивает с толку.предположим, что я отредактировал 10 бутстрапов, и в одном из них я допустил ошибку, стало бы так трудно найти этот маленький баг.

Есть идеи, как решить эту проблему?это советы для отображения этих ошибок?

Ответы [ 2 ]

3 голосов
/ 26 августа 2010

Я не знаю, что вы делаете в своей начальной загрузке, но если она не работает при сохранении объектов домена, вы можете регистрировать их как ошибки так же, как в контроллере.Если вы хотите, чтобы ошибки выводились на консоль, просто настройте консольный приложение:

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

Ссылки:

0 голосов
/ 10 июня 2013

В другое время вы можете использовать этот метод show error не только для объекта домена, такого как 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>
...