春天WebFlux不能在Tomcat的运行
问题描述:
的IntelliJ IDEA作为开发工具,我想开发使用Spring WebFlux,这是我目前使用如下一个简单的博客系统:春天WebFlux不能在Tomcat的运行
- 泉的FrameWork 5.0;
- 百里香
- Spring WebFlux;
我暂时不使用数据库(直到我可以通过Spring WebFlux访问我的主页)。在Spring WebFlux,我使用的Java配置和配置文件如下:
// WebConfig.java
@Configuration
@EnableWebFlux
public class WebConfig implements WebFluxConfigurer {
@Override
public void configureContentTypeResolver(RequestedContentTypeResolverBuilder builder) {
builder.fixedResolver(MediaType.ALL);
}
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.viewResolver(viewResolver());
}
public SpringResourceTemplateResolver templateResolver() {
SpringResourceTemplateResolver templateResolver = new SpringResourceTemplateResolver();
templateResolver.setApplicationContext(org.springframework.web.context.ContextLoader.getCurrentWebApplicationContext());
templateResolver.setPrefix("/resources/templates/");
templateResolver.setSuffix(".html");
templateResolver.setTemplateMode(TemplateMode.HTML);
templateResolver.setCacheable(true);
return templateResolver;
}
public SpringWebFluxTemplateEngine templateEngine() {
SpringWebFluxTemplateEngine templateEngine = new SpringWebFluxTemplateEngine();
templateEngine.setTemplateResolver(templateResolver());
templateEngine.setEnableSpringELCompiler(true);
return templateEngine;
}
public ThymeleafReactiveViewResolver viewResolver() {
ThymeleafReactiveViewResolver viewResolver = new ThymeleafReactiveViewResolver();
viewResolver.setTemplateEngine(templateEngine());
viewResolver.setOrder(1);
return viewResolver;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/images/**")
.addResourceLocations("classpath:/src/main/resources/static/images/");
}
}
另一个配置类:
@Configuration
@ComponentScan("xyz.suancaiyu")
public class RootConfig extends
AbstractAnnotationConfigDispatcherHandlerInitializer {
@Override
protected Class<?>[] getConfigClasses() {
return new Class[]{WebConfig.class};
}
}
控制器:
@Controller
public class HomeController {
@RequestMapping("/")
public String index() {
String home = "hello";
return "home";
}
}
HTML:
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<p th:text="${home}"></p>
</body>
</html>
但我访问了:http://localhost:8080
当提示500错误,但我无法看到IntelliJ IDEA中的具体错误。
请帮助我,谢谢。
所有的代码,您可以查看:https: //github.com/dcxy0/Spring5WebFluxDemo
答
它可以帮助http://andrunevchyn.com/2017/10/27/spring-5-webflux-without-springboot/ 这取决于你如何部署。如果您将它部署为war文件,我会建议尝试使用项目名称调用url。同时检查你的webxml配置。