springBoot 由jar包转换为war包

   引言

  我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时这也可能是我们的一个瓶颈,因为如果我们需要对tomcat做集群或者一些优化的话是非常不方便的,所以我们仍然需要将springBoot的项目部署到外在的tomcat中,下面小编就介绍一下如何将jar包转换成war包。


  第一步、将SpringBoot的项目的打包方式设置为war

   

        <groupId>com.example</groupId>
	<artifactId>demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<packaging>war</packaging>
  

  第二步、移除内嵌的tomcat模块,但是为了我们在本机测试方便,我们还需要引入它,所以配置如下

  

               <dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
			<exclusions>
				<exclusion>
					<groupId>org.springframework.boot</groupId>
					<artifactId>spring-boot-starter-tomcat</artifactId>
				</exclusion>
			</exclusions>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-tomcat</artifactId>
			<scope>provided</scope>
		</dependency>

  第三步、添加tomcat-servelt-api依赖


             <dependency>
			<groupId>org.apache.tomcat</groupId>
			<artifactId>tomcat-servlet-api</artifactId>
			<version>7.0.42</version>
			<scope>provided</scope>
		</dependency>


  第四步、修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法


package com.example;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.support.SpringBootServletInitializer;
import org.springframework.cache.annotation.EnableCaching;

@SpringBootApplication
@EnableCaching
public class SpringDataJpaExampleApplication extends SpringBootServletInitializer {

	@Override
	protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
		return application.sources(SpringDataJpaExampleApplication.class);
	}

	public static void main(String[] args) {
		SpringApplication.run(SpringDataJpaExampleApplication.class, args);
	}
}

 第五步、添加war插件,用来自定义打包以后的war包的名称


                       <plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-war-plugin</artifactId>
				<configuration>
					<warSourceExcludes>src/main/resources/**</warSourceExcludes>
					<warName>springBoot</warName>
				</configuration>
			</plugin>

  引入上面这个插件,是避免maven打包的时候为我们默认的一个带有版本号的war包名称,因为我们部署到tomcat以后,在访问项目的时候,需要用到这个war包的名称。例如的war包名称为springBoot。本地访问的路径为:

http://localhost:9090/users/。则部署到tomcat以后访问路径为:http://localhost:9090/springBoot/users/。

  经过上面这几个步骤,我们就完成了jar包到war包的改变,下面我们需要利用maven生成war包即可

  右击项目——》run as ——》maven build ——》在goals中输入package——》run 即可


  遇到的问题

  war包部署以后访问出现404问题,因为对个技术还不是很熟悉,认为错误原因是自己pom文件配置的有问题,所以焦点一直在pom文件上面,结果最后查看tomcat日志的时候发现,错误提示的是。运行此项目用的jdk1.6。导致项目在tomcat中根本无法启动,这是因为我们的环境变量配置的是jdk1.6导致的,将1.6换成1.7后问题解决。

  小结

  当我们遇到问题不能很快的知道出错的原因的时候,我们首先想到的是查看相关的日志,因为日志会给我们很多的提示,对于我们解决错误会有很大的帮助。不要一味的根据自己的猜测来解决问题,这样会让我们走很多的弯路。


  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 15
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

g-Jack

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值