您的位置:首页 > 编程语言 > Java开发

关于SpringBoot部署上的一些坑

2017-07-10 09:46 316 查看
最近打算把之前写的一个SpringBoot的小demo部署到自己的腾讯云上

但是中间断断续续踩了很多坑,所以来写个博客,来记录下


第一个坑

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.
查了资料,说是Tomcat7里面的防止内存泄漏的机制

用了很多方法试着解决,但是现在还是没有解决

于是用了jar打包的方式,放弃用war打包


第二个坑

jar的打包

SpringBoot里用jar打包只需把pom.xml里packaging改成jar
1
<packaging>jar</packaging>
然后点击右侧Maven projects里的package即可在target目录下生成对应的jar文件



但是有一个问题,我本地数据的密码与服务器上不一样

所以还要在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 中设置

设置完就可以查看进程了


用到的工具

IDEA
Tomcat
Mysql
WinSCP
MySql Workbench
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: