Я переношу приложение весенней загрузки / mvc в webflux с весенней загрузкой. Ранее в моем методе контроллера я использовал return new ModelAndView ("WEB-INF / view / index.html"); с @EnableWebMvc, и он работал нормально, и мой файл index.html находится в каталоге src / main / webapp / WEB-INF / view.
Теперь после перехода на Spring Boot 2 и Spring Webflux я сделал следующие изменения.
- Создайте класс WebConfig, который реализует WebFluxConfigurer и аннотируется @ EnableWebFlux.
@Configuration .
@EnableWebFlux .
@ComponentScan .
public class MvcConfiguration implements WebFluxConfigurer .
{
}
- Теперь в моем классе контроллера, аннотированном @Controller, я возвращаю
return Rendering.view ("index"). Status (HttpStatus.OK) .build ();
Согласно документации, рендеринг похож на то, что ModelAndView делал в Spring MVC, но я получаю ошибку, что имя представления не разрешено. Я упаковываю свое приложение как файл WAR, а файл index.html находится в каталоге src / main / webapp / WEB-INF / view. Может кто-нибудь, дайте мне знать, если я делаю что-то здесь не так.
"метка времени": "2019-05-16T10: 18: 45,686Z", "уровень": "ERROR", "нить": 23, "сообщение": "[3aa66863]
500 Ошибка сервера для HTTP POST
\ "/ \" " "Регистратор": "org.springframework.boot.autoconfigure.web.reactive.error.AbstractErrorWebExceptionHandler", "X-B3-SpanId": "2119cab4151aa54d", "X-B3-TraceId":" 2119cab4151aa54d " "X-Спан-экспорт": "ложь", "spanExportable": "ложь", "spanId": "2119cab4151aa54d", "traceId": "2119cab4151aa54d", 498d86514b78.1558001925680]", "Throwable": { "класс": "java.lang.IllegalStateException", "сообщение": "Могли бы
не разрешить представление с именем index.html., stack:
Открытый API для рендеринга HTML. Поддерживается как возвращаемое значение в контроллерах Spring WebFlux. Сравнимо с использованием {@code ModelAndView} в качестве возвращаемого значения в контроллерах Spring MVC.