历史文章(文章累计450+)

国内最全的Spring Boot系列之一

国内最全的Spring Boot系列之二

国内最全的Spring Boot系列之三

国内最全的Spring Boot系列之四

国内最全的Spring Boot系列之五》

SpringBoot添加外部jar包及打包(亲测有效) - 第452篇

SpringBoot引入外部jar包,项目打包成war包发布(亲测有效) - 第453篇

SpringBoot中使用Spring-Retry重试框架 - 第454篇

Spring的秒表StopWatch优雅的程序计时器 -第455篇

(我阳了)SpringBoot3正式版于11月24日发布:都有哪些新特性?- 第456篇

SpringBoot3初体验 - 第457篇

悟纤:师傅你最近好些了没有?

师傅:好多了,这个新冠不得了了。

悟纤:怎么说呢?

师傅:不同的人不同的症状,我最难受的阶段就是发高烧,烧的睡不着的那个阶段;还有

一点就是养成了晚上不好入睡的坏习惯。最近虽然都差不多了,但还是会不时的咳嗽。

悟纤:确实没有办法,现在只能说早得上早过个好年,不得上的概率感觉比中彩票的概率还低呢。

师傅:可不是吗,徒儿最近研究技术研究的怎么样了?

悟纤:又碰到了一个问题,这不之前实现了打包成war包,直接部署到tomcat的容器了吗,现在领导要求我们要直接引入外置Tomcat进行开发,这样开发环境和部署环境就一样了,也能够避免开发环境和部署环境不一样,导致的诡异问题。

师傅:这个还是很简单的,就是一些步骤,知道了也就闭着眼就能搞定了。

悟纤:那师傅赶紧和徒儿讲讲,我好去装逼一下。

导读

在前面有一个小节讲解了Spring Boot引入外部jar包,项目打包成war包发布,那么自然的会想,那么在开发的时候,是否就可以使用外置的Tomcat启动呢?

带着这个问题,一起来探个究竟。

一、准备工作

有些工作在前面的小节中已经介绍过了,这里不重复编写,但简单的做个说明。

1.1 环境说明

(1)操作系统:MacOS Catalina

(2)Idea:IntelliJ IDEA 2022.2.2 (Ultimate Edition)

(3)Spring Boot:2.7.6

(4)外置Tomcat:8.5.57

1.2 准备工作

(1)下载Tomcat,确保外置的Tomcat可以正常的启动,注意Tomcat的版本号最好是和Spring Boot相应的版本的Tomcat和JDK的版本号对应,免得碰到奇奇怪怪的问题。

(2)准备一个Spring Boot项目,确保以及配置好了war包的打包形式了,这一个步骤可以参考文章:

《SpringBoot引入外部jar包,项目打包成war包发布(亲测有效) - 第453篇》

《SpringBoot添加外部jar包及打包(亲测有效) - 第452篇》

更多@打包的知识,关注公众号「SpringBoot」回复关键词[453 | 452],查看文章。

二、配置外置Tomcat

一切都准备好,就可以配置外置的Tomcat,然后在开发工具中使用外置的Tomcat进行启动Spring Boot的应用。

2.1 Edit Configurations

选择Edit Configurations...

2.2在Run/Debug Configurations 对话框选择Tomcat

在Run/Debug Configurations 对话框选择Tomcat:

2.3在Run/Debug Configurations 对话框配置本地Tomcat

在Run/Debug Configurations 对话框配置本地Tomcat:

2.4在Run/Debug Configurations 对话框配置Deployment

在Run/Debug Configurations 对话框配置Deployment:

选择war包:

2.5在Run/Debug Configurations 对话框配置修改Application context

在Run/Debug Configurations 对话框配置修改Application context:

​点击OK,基本配置完成,在Idea的配置可以看到已经配置的Tomcat。

2.6启动Tomcat

注意,不能右键启动类ExampleApplication,执行启动。

正确如下:

选择已经配置的Tomcat,选择Run或者Debug运行即可,启动成功如下:

2.7测试

请求URL:http://localhost:8080/package-war-test/test1

三、外置jar无法访问

以为一切都很完美了,没想到有外置jar的方法的时候,直接报错了,目前找到的解决方案是,创建目录src/main/webapp/WEB-INF/lib/,将外置的jar放到这个目录下。

当然其它有引用的地方也需要相应修改下路径,修改maven-war-plugin的路径:

<plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-war-plugin</artifactId>    <version>3.3.2</version>    <configuration>        <failOnMissingWebXml>false</failOnMissingWebXml>        <webResources>            <webResource>                <directory>${pom.basedir}/src/main/webapp/WEB-INF/lib/</directory>                <targetPath>WEB-INF/lib/</targetPath>                <includes>                    <include>**/*.jar</include>                </includes>            </webResource>        </webResources>    </configuration></plugin>

不出意外的应该就可以正常的使用了,如果还不行的话,那么就再添加一个maven-compiler-plugin插件:

<!-- 设置javac编译器的版本和编码字符 --><plugin>    <groupId>org.apache.maven.plugins</groupId>    <artifactId>maven-compiler-plugin</artifactId>    <configuration>        <source>${java.version}</source>        <target>${java.version}</target>        <encoding>utf8</encoding><!-- 编译器编码 -->        <compilerArguments>            <extdirs>${project.basedir}/src/main/webapp/WEB-INF/lib</extdirs>        </compilerArguments>    </configuration></plugin>

在idea内启动tomcat,访问有外部jar调用的方法:

一切都是这么的美好。

至于为什么自己定义的/libs,不能被加载进来,这个问题目前还不清楚,有知道的可以留言告知下。

总结

总的来说,还是很简单的,主要是有些步骤不知道所以可能会采一些坑,但问题不大。

(1)下载外置Tomcat

(2)将Spring Boot项目配置以war的方式进行打包

(3)将外置的Tomcat添加到Idea中,然后将war添加到Tomcat容器。

(4)外置的jar不能识别的问题,就是将外置的jar放到一个固定的路径下,就能够被识别了。

\(^o^)/~你的小小鼓励,是博主坚持的动力,点个赞再走呗~

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟空学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

ShardingJDBC分库分表:http://t.cn/A6ZarrqS

分布式事务解决方案:http://t.cn/A6ZaBnIr

JVM内存模型调优实战:http://t.cn/A6wWMVqG

Spring入门到精通:https://t.cn/A6bFcDh4

大话设计模式之爱你:https://dwz.cn/wqO0MAy7

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐