您的位置 首页 > 数码极客

如何将文件打成war包—如何转为war文件…


同事问了,打成war不能执行,报错,找了好久找不到原因,今天自己也碰到这个问题,一样的。


原因是servlet关联没有,二是启动时调用原始的启动类


解决方案如下:


1、打war

<packaging>war</packaging>


2、去掉关联,可选步骤

<dependency> <groupId>org.;/groupId> <artifactId>spring-boot-starter-web</artifactId> <!-- 移除嵌入式tomcat插件 --> <exclusions> <exclusion> <groupId>org.;/groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>

3、添加servlet-api的依赖(下面任一)

<!--要放到tomcat中运行,war的方式,加这个,否则不用加--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> <scope>provided</scope> </dependency>
<dependency> <groupId>org.a;/groupId> <artifactId>tomcat-servlet-api</artifactId> <version>8.0.36</version> <scope>provided</scope> </dependency>


4、增加启动再调用原始的main类

若原始的启动类是:AdminApplication,那么在同包中,增加如下的文件

import org.; import org.; /** * 增加这个类,修改启动类,继承 SpringBootServletInitializer 并重写 configure 方法 */ public class SpringBootStartApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.source); } }


或者启动类改成

import org.; import org.; import org.; import org.; @SpringBootApplication public class AdminApplication extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { // 注意这里要指向原先用main方法执行的Application启动类 return builder.source); } public static void main(String[] args) { S, args); } }

责任编辑: 鲁达

1.内容基于多重复合算法人工智能语言模型创作,旨在以深度学习研究为目的传播信息知识,内容观点与本网站无关,反馈举报请
2.仅供读者参考,本网站未对该内容进行证实,对其原创性、真实性、完整性、及时性不作任何保证;
3.本站属于非营利性站点无毒无广告,请读者放心使用!

“如何将文件打成war包,如何转为war文件,如何压缩成war文件,war文件如何解压”边界阅读