【问题标题】:Spring WebFlux can not run in TomcatSpring WebFlux 无法在 Tomcat 中运行
【发布时间】:2018-03-31 15:41:27
【问题描述】:

IntelliJ IDEA 作为开发工具,想用Spring WebFlux开发一个简单的博客系统,目前使用如下:

  1. 弹簧框架 5.0;
  2. 百里香
  3. Spring WebFlux;

我暂时不使用数据库(直到我可以通过 Spring WebFlux 访问我的主页)。在Spring WebFlux中,我使用了Java Config,配置文件如下:

// 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

【问题讨论】:

    标签: java spring spring-mvc tomcat intellij-idea


    【解决方案1】:

    它可以帮助http://andrunevchyn.com/2017/10/27/spring-5-webflux-without-springboot/ 这取决于您如何部署。如果您将其部署为战争文件,我建议您尝试使用项目名称调用 url。还要检查您的 webxml 配置。

    【讨论】:

      猜你喜欢
      • 2020-08-05
      • 2018-05-13
      • 2014-06-27
      • 2021-12-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-20
      • 2014-12-11
      相关资源
      最近更新 更多