Spring boot 在tomcat中部署spring引导应用程序

Spring boot 在tomcat中部署spring引导应用程序,spring-boot,tomcat,deployment,web-applications,Spring Boot,Tomcat,Deployment,Web Applications,我试图在tomcat 9中部署我的spring应用程序,使用war文件,我可以生成.war文件,但得到一个错误404。 我的应用程序是SpringBootServletilizer的扩展,我重写了configure方法,我的pom.xml文件也有依赖项“SpringBootStarterTomcat” 日志中没有任何错误。但是如果我把index.html放在我的webapps目录中,tomcat会加载它。我需要tomcat加载index.jsp,但它是在WEB-INF/views中生成的 部署目

我试图在tomcat 9中部署我的spring应用程序,使用war文件,我可以生成.war文件,但得到一个错误404。 我的应用程序是SpringBootServletilizer的扩展,我重写了configure方法,我的pom.xml文件也有依赖项“SpringBootStarterTomcat”

日志中没有任何错误。但是如果我把index.html放在我的webapps目录中,tomcat会加载它。我需要tomcat加载index.jsp,但它是在WEB-INF/views中生成的

部署目录的树(-L 2):

。
├── META-INF
│   ├── MANIFEST.MF
│   ├── 专家
│   └── 战争追踪器
├── 组织机构
│   └── 弹簧框架
└── WEB-INF
├── 班级
├── 解放党
├── 提供的lib
└── 意见
源结构

。
├── JAVA
│   └── 通用域名格式
│       └── 公司
│           └── 应用程序
│               ├── 控制器
│               ├── Application.java
│               ├── 模型
│               ├── 服务
│               └── 利用率
├── 资源
│   └── 应用程序属性
└── 网络应用
└── WEB-INF
└── 意见
├── secondary.jsp
└── index.jsp
我的pom.xml文件:


4.0.0
战争
org.springframework.boot
spring启动程序父级
2.2.2.1发布
com.netexlearning
确认人
0.0.1-快照
确认人
弹簧靴
11
com.company.app.Application
3.1.0
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧靴开发工具
运行时
真的
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
弹簧启动机tomcat
假如
文件上传
文件上传
1.3.3
org.json
json
20190722
javax.servlet
jstl
1.2
org.apache.tomcat.embed
汤姆卡特·贾斯珀
假如
org.eclipse.jdt.core.compiler
欧洲法院
4.6.1
假如
${project.artifactId}
org.springframework.boot
springbootmaven插件
application.properties:

path.file.service=上传
spring.servlet.multipart.max文件大小=2MB
spring.servlet.multipart.max请求大小=2MB
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp
application.java

@springboot应用程序
@EnableConfigurationProperties(StorageProperties.class)
公共类应用程序扩展了SpringBootServletInitializer{
公共静态void main(字符串[]args){
SpringApplication.run(Application.class,args);
}
@凌驾
受保护的SpringApplicationBuilder配置(SpringApplicationBuilder){
返回生成器.sources(Application.class);
}
@豆子
CommandLineRunner初始化(存储服务存储服务){
返回(args)->{
storageService.deleteAll();
init();
};
}
}
如果需要更多信息,请告诉我。

我解决了

我使用的是存储服务,它需要写入权限,但我不确定在哪里,然后我犯了一个错误:我在webapps中部署的文件夹中使用了chmod 664,Tomcat“运行”了我的项目,但总是得到404错误的响应。Spring从未执行过任何操作。 我删除了webapps中的文件夹,将属性
path.file.service=upload
更改为
path.file.service=/tmp/file
,然后再次生成了war文件


它现在正在工作。

您的源结构看起来如何?您使用的是哪个tomcat版本和spring boot版本?我的pom.xml文件也有依赖项“spring boot starter tomcat”,注:应提供范围。裁判: