Springboot 发布war包

本来是默认使用的jar包,但是当程序发布到服务器上运行时产生了跨域问题。网上查找有几种方法可以解决jar运行的跨域问题,考虑到本身服务器上有tomcat(已解决跨域),为简便,直接将,程序打包成war,扔tomcat下!

1、修改pom.xml,jar——war

 2、排除内嵌的tomcat,引入javax.servlet-api

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>

<!-- 打成war的时候打开注释,本地开发用内嵌tomcat时加上注释 -->

<!-- 此处要用compile,开始用provided运行会报错 -->
    <scope>compile</scope>
</dependency>
<dependency>
  <groupId>javax.servlet</groupId>
  <artifactId>javax.servlet-api</artifactId>
  <version>3.1.0</version>
  <scope>provided</scope>
</dependency>
<dependency> 
      <groupId>org.apache.tomcat</groupId> 
      <artifactId>tomcat-servlet-api</artifactId> 
      <version>8.5.79</version> 
      <scope>provided</scope> 
</dependency>

3、引入maven-war-plugin插件

     <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-war-plugin</artifactId>
         <version>3.3.1</version>
         <configuration>
             <failOnMissingWebXml>false</failOnMissingWebXml>
         </configuration>
     </plugin>
4、修改Application类,修改项目默认启动方式,启动类继承SpringBootServletInitializer类重写configure()方法

@SpringBootApplication
public class ServerApplication extends SpringBootServletInitializer {
   
  @Override
  protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
    return builder.sources(ServerApplication.class);
  }
 
  public static void main(String[] args) {
    SpringApplication.run(ServerApplication.class, args);
  }
}
 

5、修改项目的context-path与warName一致 修改application.properties的context-path和port等信息和实际部署的情况改为一致:

server.port=8080

server.context-path=mongophotos
 

用maven install编译后,即可在工程target目录下生成war包,将war包拷贝到服务器tomcat下,搞定!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值