springBoot 由jar包转换为war包
2017-05-08 23:03
519 查看
引言
我们都知道springBoot中已经内置了tomcat,是不需要我们额外的配置tomcat服务器的,但是有时这也可能是我们的一个瓶颈,因为如果我们需要对tomcat做集群或者一些优化的话是非常不方便的,所以我们仍然需要将springBoot的项目部署到外在的tomcat中,下面小编就介绍一下如何将jar包转换成war包。
第一步、将SpringBoot的项目的打包方式设置为war
第二步、移除内嵌的tomcat模块,但是为了我们在本机测试方便,我们还需要引入它,所以配置如下
第三步、添加tomcat-servelt-api依赖
第四步、修改入口方法 继承一个SpringBootServletInitializer类,并且覆盖configure方法
第五步、添加war插件,用来自定义打包以后的war包的名称
引入上面这个插件,是避免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后问题解决。
小结
当我们遇到问题不能很快的知道出错的原因的时候,我们首先想到的是查看相关的日志,因为日志会给我们很多的提示,对于我们解决错误会有很大的帮助。不要一味的根据自己的猜测来解决问题,这样会让我们走很多的弯路。
我们都知道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后问题解决。
小结
当我们遇到问题不能很快的知道出错的原因的时候,我们首先想到的是查看相关的日志,因为日志会给我们很多的提示,对于我们解决错误会有很大的帮助。不要一味的根据自己的猜测来解决问题,这样会让我们走很多的弯路。
相关文章推荐
- spring boot 打包从jar转换成war
- SpringBoot之将jar应用转化为war应用
- Spring Boot 部署(jar和war的区别)
- SpringBoot建工程jar工程和war工程的区别
- SpringBoot打包从jar变成war
- Spring Boot打包可执行的jar或者war文件
- springboot打包jar ,war遇到的问题。
- SpringBoot打war包并部署到外部tomcat运行(jar工程改造为正war工程)
- SpringBoot项目打成war和jar
- SpringBoot 项目打包方式 jar 和 war
- spring boot -- 打包jar,war(二)打成war包,mapper文件扫描不到
- 【spring boot】6.idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到
- idea工具将SpringBoot工程打包成 jar或war
- springboot 打成jar 包 或 war 包有什么区别
- spring boot 项目由jar转war
- springboot 由 jar包转 war包
- 详解Spring Boot 部署jar和war的区别
- idea打包SpringBoot项目打包成jar包和war
- 【spring boot】6.idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到
- spring boot war包包含本地jar