赞
踩
1. tomcat9
2. jdk8
3. springboot2.x
<packaging>war</packaging>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <!--配置springboot入口类--> <configuration> <fork>true</fork> <jvmArguments>Dfile.encoding=UTF-8</jvmArguments> <!--配置入口类的标签名--> <mainClass>com.kaiguo.Test</mainClass> </configuration> </plugin> </plugins> </build>
<mainClass>com.kaiguo.Test</mainClass>
这个必须要修改成你自己的配口类标签名
因为打war在tomcat部署,我们需要将内嵌的tomcat去掉
加入你的springboot有jsp文件的话还要将tomcat解析jsp的依赖去掉
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--打包不参与--> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-jasper</artifactId> <scope>provided</scope> </dependency> <!--打包不参与,也就是打包去掉tomcat--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> <scope>provided</scope> </dependency>
<scope>provided</scope>
这个scope的意思在当前环境可以使用,但是不参与打包!!!
@SpringBootApplication
public class Test extends SpringBootServletInitializer {
@Override //这个表示使用外部的tomcat容器
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
// 注意这里要指向原先用main方法执行的启动类
return builder.sources(Test.class);
}
public static void main(String[] args) {
SpringApplication.run(Test.class,args);
}
}
最后进行打包即可
将war包放入tomcat下的webapps下面
我们启动tomcat
启动tomcat
注意、:war部署的时候 tomcat默认将你的根路径变成你的war的名称
访问我们的测试接口
成功
例如 你的war是 test.war
那么部署的时候访问接口必须是
http://localhost:8080/test/
我的war包是wa.war
那么部署之后 我要访问我的接口/consumer/hello
必须是 http://localhost:8080/wa/consumer/hello而不是http://localhost:8080/consumer/hello
很多小伙伴经常搞错
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。