除非tomcat maven依赖范围是编译的,否则spring boot不会为jsps返回404?

时间:2016-09-15 13:12:22

标签: java spring maven spring-boot

在尝试渲染jsp文件时,我正在通过spring boot返回404。我的maven配置有spring-boot-starter-parent版本1.4.0.RELEASE作为版本。

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>1.4.0.RELEASE</version>
    <relativePath/> <!-- lookup parent from repository -->
</parent> 

我正在运行嵌入式Tomcat servlet容器。

我发现此帖子spring-boot basic JSP 404 Not Found并在我的spring.mvc.view.prefix文件中设置了必需的spring.mvc.view.suffixapplication.properties属性。

仍然是404s。

然后我发现了这个SO帖子spring-boot-not-finding-jsp-pages-in-war-file,并在我的pom文件中添加了必要的依赖项:

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
</dependency>

仍然是404s。

在删除<scope>provided</scope>标记后,一切都开始起作用了。认为这个标签可能导致弹簧启动的不同类路径并因此打开了不同的功能,我使用--debug打开了弹簧启动配置报告,并使用scope标签来区分输出。没有区别。两者在Positive matches部分中都有以下行:

  

WebMvcAutoConfiguration.WebMvcAutoConfigurationAdapter#defaultViewResolver匹配          - @ConditionalOnMissingBean(types:org.springframework.web.servlet.view.InternalResourceViewResolver; SearchStrategy:all)找不到bean(OnBeanCondition)

任何人都可以解释为什么它没有provided范围吗?

0 个答案:

没有答案