尝试运行Spring Boot以使用JSP页面时遇到一些困难。我知道文档中提供的限制,因此根据规则制作了所有内容。但是,无法找到问题。
我会尝试提供尽可能多的信息。
想要开始使用Spring Boot。我正在使用:
IntelliJ IDEA,Maven,Maven Spring Boot插件,嵌入式Tomcat。 Link项目样本。
REST控制器工作正常,但是当我尝试将jsp链接到公共控制器时,我100%最终得到了Whitelabel错误页面,说明了404.
将文件从WEB-INF
移至resources/static
无效。
问题是即使我试图运行最简单的快速启动Spring Boot项目,我也面临异常。当我尝试从mkyong站点加载示例时,Here的异常日志。
我尝试手动管理maven依赖项,因为我浏览了一些"潜力"解决方案,发现它可能是jar冲突。我甚至尝试在一个全新的操作系统上启动该项目 - 这是我绝望的程度。
任何指导都将被视为神圣的外阴。
更新
在依赖项中添加mvn spring-boot
后尝试使用javax.servlet-api
再次运行项目时出现以下错误。经度:
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-
maven-plugin:1.4.5.RELEASE:run (default-cli) on project demo: An
exception occurred while running. null: InvocationTargetException:
Unable to start embedded container; nested exception is org.springframework.boot.context.embedded.EmbeddedServletContainerExceptio
n: Unable to start embedded Tomcat: Failed to start component
[StandardServer[-1]]: Failed to start component [StandardService[Tomcat]]:
Failed to start component [StandardEngine[Tomcat]]: A child container
failed during start -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with
the -
e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1]
http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
更新
使用@Piotr Gwiazda的建议,尝试使用Thymeleaf而不是JSP。工作。但是,我想知道为什么JSP没有。
答案 0 :(得分:2)
出于某种原因,您的代码有两个webapp文件夹。一个(错误的位置)在 src / 下,另一个在(正确) src / main / 下。现在你的WEB-INF / jsp出错了。所以,将它移动到适当的文件夹。
答案 1 :(得分:1)
您可以使用一个这样的示例配置
创建src / main / resources源包并将静态资源放在该位置。
@Configuration
@EnableWebMvc
public class WebMvcConfig extends WebMvcConfigurerAdapter {
private static final String[] CLASSPATH_RESOURCE_LOCATIONS = { "classpath:/META-INF/resources/",
"classpath:/resources/", "classpath:/static/", "classpath:/public/" };
@Bean
public ViewResolver getViewResolver() {
InternalResourceViewResolver resolver = new InternalResourceViewResolver();
//resolver.setPrefix("/resources/");
resolver.setSuffix(".html");
return resolver;
}
@Override
public void configureDefaultServletHandling(
DefaultServletHandlerConfigurer configurer) {
configurer.enable();
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations(CLASSPATH_RESOURCE_LOCATIONS);
}
}
答案 2 :(得分:0)