打包 jar 包,访问的时候报404。
原因:url -> dispatcher -> request.getDispatcher (jspName) ; jsp 取的是 根目录 下的;
maven:可以用 spring-boot-maven-plugin 1.4.2 打出能够 访问 jsp 的 jar。
gradle:怎么办呢?
1:spring-boot-gradle-plugin 用 1.4.2
2: gradle版本在3.4 (5.1 版本后的gradle试了,发现打包报错 gradle.api。。。)
3: 必须依赖 tomcat-embed-jasper(内嵌tomcat)
4: 由于这个spring-boot-gradle-plugin导致,spring的依赖包都是低版本3.4左右的,gradle需要引入spring boot parent bom文件(spring 5.1.7)
// 引入 bom(pom) 文件的方式
dependencyManagement {
imports {
// 'groupId:artifactId:version'
// http://ju.outofmemory.cn/entry/336022
mavenBom'org.springframework.boot:spring-boot-dependencies:2.1.5.RELEASE'
}
}
5.jsp放在了 src/main/resources/META-INF/resources/WEB-INF/jsp (有篇外国文档说放在这个目录下)
-- 根据以上 1-5 的步骤。gradle build 打出的 jar 就可以访问 jsp 了
6. 配置一下 spring boot 下的 public WebServerFactoryCustomizerwebServerFactoryCustomizer() ,就可以在deubg阶段看到jsp界面了