【发布时间】:2018-08-10 14:26:02
【问题描述】:
我的 Spring Boot + Angular 6 + Gradle 应用程序有问题。
我的应用程序如下所示:
家长:
->后端
->前端
后端使用 Spring Boot,配置如下:
@SpringBootApplication
@EnableBatchProcessing
public class BackendApplication extends SpringBootServletInitializer {
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return configureApplication(builder);
}
public static void main(String[] args) {
configureApplication(new SpringApplicationBuilder()).run(args);
}
private static SpringApplicationBuilder configureApplication(SpringApplicationBuilder builder) {
return builder.sources(BackendApplication.class).bannerMode(Banner.Mode.OFF);
}
}
@Controller
@EnableWebMvc
public class IndexController extends WebMvcConfigurerAdapter {
@RequestMapping(value = "/", method = RequestMethod.GET)
public ModelAndView index(HttpServletRequest request, Model model) {
ModelAndView modelAndView = new ModelAndView("index");
modelAndView.addObject("apiUrl", resolveBaseApiUrl(request));;
return modelAndView;
}
private String resolveBaseApiUrl(HttpServletRequest request) {
return request.getRequestURL().toString().replace("https://", "//").replace("http://", "//");
}
}
@EnableWebMvc()
@Configuration
public class ViewConfiguration extends WebMvcConfigurerAdapter {
@Bean
public ViewResolver jspViewResolver() {
InternalResourceViewResolver bean = new InternalResourceViewResolver();
bean.setPrefix("/WEB-INF/classes/");
bean.setSuffix(".jsp");
return bean;
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/**").addResourceLocations("/WEB-INF/classes/");
}
}
此外,我还有一些依赖项应该添加以从战争中运行此应用程序。
compile 'javax.servlet:jstl:1.2'
compile group: 'org.apache.tomcat.embed', name: 'tomcat-embed-jasper', version: '9.0.10'
我正在构建我的 Angular 6 前端并使用 gradle sourceSets 将 dist 目录的内容添加到 WAR:
sourceSets {
main {
resources {
srcDirs = ["$webappDir/dist", "$projectDir/src/main/resources"]
}
}
}
构建后的WAR文件如下所示(如您所见,有WEB-INF/classes/index.jsp文件): Screenshot of WAR file
你知道为什么我仍然得到 404 吗?
Whitelabel Error Page
There was an unexpected error (type=Not Found, status=404).
/WEB-INF/classes/index.jsp
【问题讨论】:
标签: java spring spring-boot tomcat war