最近打算把之前写的一个SpringBoot的小demo部署到自己的腾讯云上 但是中间断断续续踩了很多坑,所以来写个博客,来记录下
在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打包
然后点击右侧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 的两种方式 总算是完成了版本的升级
查了资料后 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 中设置 设置完就可以查看进程了