Компонент Request Scoped не может использоваться в теле ответа [Spring Boot] - PullRequest
1 голос
/ 06 мая 2019

У меня есть боб Request scoped (prototype) в качестве Ответа для Контроллера Отдыха и получения Исключения, не работает

Я попытался spring.jackson.serialization.FAIL_ON_EMPTY_BEANS = false в файле свойств, как предложеносообщение об ошибке "Ошибка определения типа: [простой тип, класс org.springframework.context.expression.StandardBeanExpressionResolver]; вложенное исключение - com.fasterxml.jackson.databind.exc.InvalidDefinitionException: не найден сериализатор для класса org.springframe.context.expression.StandardBeanExpressionResolver и не обнаружено никаких свойств для создания BeanSerializer (чтобы избежать исключения, отключите SerializationFeature.FAIL_ON_EMPTY_BEANS) (через цепочку ссылок: com.epic.dcms.kyc.beans.MainResponse $$ EnhancerBySpring "85SG] -> org.springframework.aop.target.SimpleBeanTargetSource [\ "beanFactory \"] -> org.springframework.beans.factory.support.DefaultListableBeanFactory [\ "beanExpressionResolver \"]) "1004, 100 *, 100 ** не работал тогдаимелась циклическая зависимость, и было выдано исключение

@ Аннотация RequestScope для изменения аннотации @scope также не решило проблему

Я заметил, что это исключение возникает только тогда, когда MainResponse используется в качестве ответа,

  Bean
        @RequestScope
        @Component
        public class MainResponse implements Serializable{
        //fields and getters and setters
        }

  Controller class
         @PostMapping("/uploadFile")
            public MainResponse uploadFile(@RequestParam("file") MultipartFile file) throws FileStorageException {
                String fileName = fileStorageService.storeFile(file);

                response.putPayLoad(true,"fileName",fileName)
                        .putPayLoad("ContentType",file.getContentType())
                        .putPayLoad("size",file.getSize());

                return response;
            }

Когда я удаляю @RequestScope из бина MainResponse, он просто отлично работает, есть идеи, как это исправить ??

1 Ответ

0 голосов
/ 06 мая 2019

Нет необходимости отмечать ваш класс ответа "@RequestScope", привязка данных будет управляться самой платформой.

...