关于SpringBoot部署上的一些坑
2017-07-10 09:46
316 查看
最近打算把之前写的一个SpringBoot的小demo部署到自己的腾讯云上
但是中间断断续续踩了很多坑,所以来写个博客,来记录下
war包的部署
在IDEA里打包成war包后,我高高兴兴的把它扔到了服务器的Tomcat上
但是却没有用,我以为是环境问题
于是我把打包的war包扔到了本地的Tomcat上
还是没有用
我查看了本地Tomcat的日志
查了资料,说是Tomcat7里面的防止内存泄漏的机制
用了很多方法试着解决,但是现在还是没有解决
于是用了jar打包的方式,放弃用war打包
jar的打包
SpringBoot里用jar打包只需把pom.xml里packaging改成jar
然后点击右侧Maven projects里的package即可在target目录下生成对应的jar文件
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/dce8986caff619246c9f922340747416.png)
但是有一个问题,我本地数据的密码与服务器上不一样
所以还要在resources文件夹下的application.properties 里把数据库密码改下
但是因为我这里有单元测试,所以改完后要关掉单元测试才行
改完后在本地测试成功
高高兴兴的扔到服务器上
执行命令
报错
这里就要注意了
因为我本地编译用的JAVA SDK是1.8版本的
而服务器上是1.7版本的,所以就出了问题
一开始我打算把IDEA里项目编译的SDK改为1.7
但是改完1.7后打包各种报错
估计是Maven那边又有些地方版本对不上吧(JAVA的版本真的是坑,前后不兼容)
于是只能在服务器上修改JAVA的版本
参考了这篇博客 ubuntu 安装jdk 的两种方式
总算是完成了版本的升级
服务器上的端口问题
一开始我在resources文件夹下的application.properties 里把项目端口设置为81端口
但是在服务器上运行的时候报错了
查了资料后
According to w3.org doc ports below 1024 are priviledged on Linux. Only root can bind to such ports. You should either use ports >1024 or run under root account (not recommended).
发现好像不能把端口定为小于1024的端口,于是我改成了8889端口
打包–本地测试–上传服务器–运行–成功
总算是成功了!!!
数据库的远程管理用Mysql官方的MySql Workbench工具
远程连接的时候记得先在数据库中新建一个用户
Tomcat里的管理员要在tomcat-user.xml 中设置
设置完就可以查看进程了
IDEA
Tomcat
Mysql
WinSCP
MySql Workbench
但是中间断断续续踩了很多坑,所以来写个博客,来记录下
第一个坑
war包的部署在IDEA里打包成war包后,我高高兴兴的把它扔到了服务器的Tomcat上
但是却没有用,我以为是环境问题
于是我把打包的war包扔到了本地的Tomcat上
还是没有用
我查看了本地Tomcat的日志
1 | 严重: The web application [/ssm] registered the JDBC driver [com.alibaba.druid.proxy.DruidDriver] but failed to unregister it when the web application was stopped. To prevent a memory leak, the JDBC Driver has been forcibly unregistered. |
用了很多方法试着解决,但是现在还是没有解决
于是用了jar打包的方式,放弃用war打包
第二个坑
jar的打包SpringBoot里用jar打包只需把pom.xml里packaging改成jar
1 | <packaging>jar</packaging> |
![](https://oscdn.geek-share.com/Uploads/Images/Content/202005/11/dce8986caff619246c9f922340747416.png)
但是有一个问题,我本地数据的密码与服务器上不一样
所以还要在resources文件夹下的application.properties 里把数据库密码改下
但是因为我这里有单元测试,所以改完后要关掉单元测试才行
改完后在本地测试成功
高高兴兴的扔到服务器上
执行命令
1 | java -jar demo.jar |
1 | Exception in thread “main” java.lang.UnsupportedClassVersionError: a (Unsupported major.minor version 52.0) |
因为我本地编译用的JAVA SDK是1.8版本的
而服务器上是1.7版本的,所以就出了问题
一开始我打算把IDEA里项目编译的SDK改为1.7
但是改完1.7后打包各种报错
估计是Maven那边又有些地方版本对不上吧(JAVA的版本真的是坑,前后不兼容)
于是只能在服务器上修改JAVA的版本
参考了这篇博客 ubuntu 安装jdk 的两种方式
总算是完成了版本的升级
第三个坑
服务器上的端口问题一开始我在resources文件夹下的application.properties 里把项目端口设置为81端口
但是在服务器上运行的时候报错了
1 | ERROR 10148 --- [ main] o.a.coyote.http11.Http11NioProtocol : Failed to start end point associated with ProtocolHandler ["http-nio-81"] |
According to w3.org doc ports below 1024 are priviledged on Linux. Only root can bind to such ports. You should either use ports >1024 or run under root account (not recommended).
发现好像不能把端口定为小于1024的端口,于是我改成了8889端口
打包–本地测试–上传服务器–运行–成功
总算是成功了!!!
一些注意事项
数据库的远程管理用Mysql官方的MySql Workbench工具远程连接的时候记得先在数据库中新建一个用户
Tomcat里的管理员要在tomcat-user.xml 中设置
设置完就可以查看进程了
用到的工具
IDEATomcat
Mysql
WinSCP
MySql Workbench
相关文章推荐
- 关于自定义重写springboot配置的一些建议
- spring boot学习总结(二)-- 关于@SpringBootApplication的一些基础知识点
- 关于springboot转发重定向以及受保护目录的一些规律
- 2018-03-15关于springboot项目的jar包部署
- springboot关于application的一些配置
- 关于springBoot项目在IDEA中热部署问题
- 关于springboot项目的部署问题
- linux下部署springboot项目用到的一些命令
- 关于spring boot 的启动加载 一些初始化数据
- 关于SpringBoot在idea中实现热部署
- 关于Spring Boot 的一些简单理解和应用
- 关于SpringBoot在idea中实现热部署
- 关于SpringBoot的一些Reflection
- 关于spring boot的一些注解
- springboot项目打成war包部署到tomcat遇到的一些问题
- 关于spring-boot工程部署到服务器,不能后台持续运行的问题
- 关于Spring boot打war包部署在tomcat上的一个问题
- spring boot热部署 关于Idea不好使的问题
- 关于SpringIOC的一些思考
- spring 的IoC的几种实现,关于API的一些事儿