Невозможно вернуть index.html из контроллера Spring в приложении Spring boot / springwebflux, упакованном как WAR - PullRequest
0 голосов
/ 16 мая 2019

Я переношу приложение весенней загрузки / mvc в webflux с весенней загрузкой. Ранее в моем методе контроллера я использовал return new ModelAndView ("WEB-INF / view / index.html"); с @EnableWebMvc, и он работал нормально, и мой файл index.html находится в каталоге src / main / webapp / WEB-INF / view.

Теперь после перехода на Spring Boot 2 и Spring Webflux я сделал следующие изменения.

  1. Создайте класс WebConfig, который реализует WebFluxConfigurer и аннотируется @ EnableWebFlux.
@Configuration . 
@EnableWebFlux . 
@ComponentScan . 
public class MvcConfiguration implements WebFluxConfigurer . 
{

}
  1. Теперь в моем классе контроллера, аннотированном @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.

...