Как передать исключение через вызов REST и восстановить его тип? - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть простой класс событий, который содержит такие атрибуты, как отметка времени и причина.Причиной является любое исключение, которое содержится в классе как Throwable.Когда я выполняю вызов REST для извлечения такого события из удаленного приложения, оно принимается как JSON и затем преобразуется обратно в событие.К сожалению, информация о типе исключения теряется, т.е.после восстановления это Throwable, а не исходный подкласс.Есть ли способ сохранить эту информацию?

Вот мой класс событий:

public class Event {
    long timestamp;
    String name;
    Throwable cause;
    ...
}

Вот мой REST Controller (с использованием Spring)

@Controller
public class EventController {
    @GetMapping(value="/event", produces={MediaType.APPLICATION_JSON_VALUE})
    public @ResponseBody Event event() {
        Event event = getEvent();
        return event;
    }
}

Примерсоответствующий JSON:

{
     "timeStamp": 1543968220913,
     "name": "Fault",
     "cause": {
        "cause":null,
        "stackTrace": [{ ... }]
     },
     ...
}

Например, на удаленном сайте cause может быть java.io.IOException.После получения этого в виде JSON и восстановления, cause теперь является java.lang.Throwable.Таким образом, информация о типе теряется.Есть ли способ сохранить его?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...