spring boot 框架下打包,默认是jar包,上传到服务器上 可以直接运行,不需要单独的配置tomcat环境,十分方便。
但是 在实际使用过程中,如果需要修改项目,比如只是修改少量的界面格式,就需要重新上传jar包,这一点就非常不方便了,尤其是在公司网络做了限制(比如我们公司),上传50M的包需要十分钟的情况下,就想哭了。
所以我还是重新使用war包了。
这个在网上很容易找到。比如:
https://blog.csdn.net/datiancai2008/article/details/60466313
按照文档修改项目,就能打出war包了
注意:
1、通过tomcat运行项目,那么在项目本身中配置文件application.properties 中的的tomcat的相关属性就不起作用了,比如
#Tomcat 相关配置
server.port =8099
server.servlet.context-path=/
①端口号是在tomcat的service中配置,项目名称是tomcat中 war包名称 。
②这里可以在pom.xml文件中配置war包的名称,避免每次都要改名字。
运行之后发现新版的tomcat上中文变为了乱码。
网上文档也很多,整理了一下,问题可能出现的地方有:
1、统一所有项目,文件的编码格式都为utf-8
①在conf目录下 server.xml文件里面设置端口的编码为utf-8 。
② 于在bin 目录下的catalina 配置文件中,添加以下设置
set "JAVA_OPTS=%JAVA_OPTS% %JSSE_OPTS% -Dfile.encoding=UTF-8"
③修改bin目录下startup.bat文件
将call "%EXECUTABLE%" start %CMD_LINE_ARGS% 改为 call "%EXECUTABLE%" run %CMD_LINE_ARGS%
2、查看制台信息,( 标题处,右键,选择属性),查看单钱代码页编码,
我出现的就是这个问题,在新版的tomcat上,默认是936 GBK格式的。
修改方法:
在windows 环境中
运行中输入regedit命令,打开注册表,找到HKEY_CURRENT_USER→Console→Tomcat(如果你改了tomcat的标题栏,这里就是你打开的命令窗口的名字),
找到CodePage项,没有则创建,更改值为十进制的65001,点击确定。
在实际操作过程中,有可能会遇到 没有tomcat这个文件的情况,运行tomcat,打开一个界面比如localhost:8080,然后在检查一下有没有目录。
在实际操作过程中,发现 tomcat正常启动了,但是 war包项目一直启动失败,
而且 项目用IDEA编辑工具run是能够正常运行的,哭
因为这是个问题在tomcat的日志中显示很不明显,所以话了很多时间去定位。
①没有配置启动项,
需要在Application启动类中基础SpringBootServletInitializer 并复写configure方法。这是网上的提的的,在文章上部分提到的打war包的时有提到。
如果没有配置,项目不会正常启动,也就打不开
② tomcat版本问题,
这个是网上提到的很多的。
我的tomcat是8.5的。试了6、7、9 都没有解决问题。还花了很多时间去解决版本不同而引发的其他的问题,坑
③jar 包重复的问题
按照tomcat的日志,和网上查到的,确实在JDK版本和tomcat 版本不配的情况向出现。
最后在logs文件下找到了详细的报错日志 !!!!
平时看的是catalina文件,里面是tomcat相关的日志,这里面对项目项目的错误日志记录的比较粗糙。
但是在localhost文件中,里面的有详细的错误日志。
最后定位是项目本身有bug。
解决了项目中springboot直接发布和使用tomcat发布的一个兼容性问题之后,就成功的使用tomcat发布了springboot打的war包了
之前不清楚,真的浪费了好多时间。