SpringBoot не может создать экземпляр класса на основе JSON - PullRequest
0 голосов
/ 09 апреля 2020

У меня проблема с загрузкой Spring. Вот контроллер

public void addNewWatcher (@RequestBody WatcherInput input) {
        boolean isDeptIDExist = false;
        boolean isCourseIDExist = false;
        for(Department department : manager){
            if(input.getDeptId() == department.getDepartmentID()){
                isDeptIDExist = true;
                for(Course course : department.getCourses()){
                    if(input.getCourseId() == course.getCourseID()){
                        isCourseIDExist = true;
                        break;
                    }
                }
            }
        }
        if(!isDeptIDExist || !isCourseIDExist){
            throw new RESTFileNotFound("deptID or courseID do not exist");
        }

        try {
            Course course = manager.get(input.getDeptId()).getCourse(input.getCourseId());
            ApiCourseWrapper selectedCourse = new ApiCourseWrapper(input.getCourseId(), course.getCatalog());
            ApiDepartmentWrapper selectedDepartment = new ApiDepartmentWrapper(input.getDeptId(), course.getSubject());

            ApiWatcherWrapper newWatcher = new ApiWatcherWrapper(nextWatcherID.incrementAndGet(), selectedDepartment, selectedCourse);
            watchers.add(newWatcher);

        } catch (Exception e) {
            e.printStackTrace();
        }

    }

WatcherInput

public class WatcherInput {
    private int deptId = 0;
    private int courseId = 0;

    public WatcherInput() {
    }

    public WatcherInput(int deptId, int courseId) {
        this.deptId = deptId;
        this.courseId = courseId;
    }

    public int getDeptId() {
        return (int)deptId;
    }

    public int getCourseId() {
        return (int)courseId;
    }
}

Проблема "JSON Ошибка разбора: невозможно создать экземпляр API.WrapperClass.WatcherInput (хотя существует хотя бы один создатель): нет int / Конструктор Int-аргумента / метод фабрики для десериализации из числового значения (11); вложенное исключение - com.faster xml .jackson.databind.ex c .MismatchedInputException: Невозможно создать экземпляр API.WrapperClass.WatcherInput (хотя бы один Создатель существует): нет конструктора int / Int-аргумента / метода фабрики для десериализации из числового значения (11) \ n в [Source: (PushbackInputStream); строка: 1, столбец: 1] ",

Я думаю SpringBoot не может создать экземпляр WatcherInput, но я не знаю, почему

1 Ответ

0 голосов
/ 09 апреля 2020

Можете ли вы попробовать вместо int типов Integer? Похоже, у него проблемы с десериализацией одного из чисел.

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