Error 500 ??? ?????

 
 
 
Сообщения:365
У нас частенько происходит так, что в ответ пользователю показывается ошибка 500. А в логах ничего не логируется. Давайте для начала обсудим такое:
CodeHighlighting.displayReviewComments = function () {
    var codeReviewId = $('#codeReviewId').val();
    return $.ajax({
        url: baseUrl + '/reviews/' + codeReviewId + '/json',
        type: "GET",
        success: function (data) {
            var comments = data.result.comments;
            for (var i = 0; i < comments.length; i++) {
                CodeHighlighting.addComment(comments[i]);
            }
        },
        error: function () {
            jDialog.createDialog({
                type: jDialog.alertType,
                bodyMessage: $labelUnexpectedError
            });
        }
    });
}
На стороне контроллера:
    @RequestMapping(value = "/reviews/{reviewId}/json", method = RequestMethod.GET)
    @ResponseBody
    public JsonResponse getCodeReview(@PathVariable("reviewId") Long reviewId) throws NotFoundException {
        CodeReview review = codeReviewService.get(reviewId);
        return new JsonResponse(JsonResponseStatus.SUCCESS, new CodeReviewDto(review));
    }
Вопрос - как от контроллера может прити ошибка и где она будет логироваться? В exception resolver'e? Кто-то проверял логирует ли он на самом деле здесь:
super.logException(ex, request);
 
 
Сообщения:16
Так можно же логировать прямо в ExceptionHandler. Это метод, как правило, в том же контроллере, который отвечаются за обработку определенной ошибки, что брошена в в одном из методов контроллера.
 
 
Сообщения:365
Ну проще просто определить какой-то общий Exception Handler, чтоб хотя бы логировал все ошибки. Но сейчас вроде все должно работать судя по коду, но я так понимаю никто не проверял этого.
 
 
Сообщения:16
Ну есть общие Exception Resolvers. И да, наверное, никто не проверял.
 
 
Сообщения:365
lamao, можешь взглянуть на exception handler в скоупе код ревью? Нужно проверить логирует ли он ошибки выброшенные из контроллеров.
 
 
Сообщения:41
ctapobep:
lamao, можешь взглянуть на exception handler в скоупе код ревью? Нужно проверить логирует ли он ошибки выброшенные из контроллеров.


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

Quote:
2013-05-13 15:19:45 [INFO ][http-8105-9 ][lamao][org.jtalks.jcommune.web.exception.PrettyLogExceptionResolver] - Entity [CodeReview] with id: 600 not found


и в ответе выдается соответствующая html-страница.

???????? ? ???????????? ??????? :) ?6?%:??(?;????????????:?7503???????{}}
 
 
Сообщения:41
Хотя вот в CodeReviewCommentController есть перехват исключений.
/**
     * Returns fail response  when security exception is through
     * @return fail response with status 'Fail' and reason 'security'
     */
    @ExceptionHandler(AccessDeniedException.class)
    @ResponseBody
    public FailJsonResponse securityError() {
        return new FailJsonResponse(JsonResponseReason.SECURITY);
    }
    
    /**
     * Returns fail response  when entity with given ID was not found
     * @return fail response with status 'Fail' and reason 'entity-not-found'
     */
    @ExceptionHandler(NotFoundException.class)
    @ResponseBody
    public FailJsonResponse entityNotFoundError() {
        return new FailJsonResponse(JsonResponseReason.ENTITY_NOT_FOUND);
    }

???????? ? ???????????? ??????? :) ?6?%:??(?;????????????:?7503???????{}}
 
Модераторы:katctapobepІраїдаJulia AtlyginaJulik21Julikdsafjifb
Сейчас эту тему просматривают:Нет