新浪云部署war包

属实坑啊!

Posted by LEODPEN on 2020-04-17

新浪云?

云计算作业要用到新浪云,没想到还要注册微博账号,我坚守多年的不创建微博账号的清白之身就这样被交出去了呜呜呜。。。

有一说一,进到这个界面我是拒绝的,尤其是不断跳动的邀请好友,让人有一种回到人人网的感觉hhh。好了,下面是踩坑和解决合集,以部署一个Springboot的demo来作为例子。

操作操作操作

  首先我们肯定已经写好了demo,但是可能并没有提前看到是需要打成war包的,那么在打包的时候就需要改一改。

pom文件

  注意JDK需要1.8。然后弄成<packaging>war</packaging>

  然后我们要用它的Tomcat,不使用内置的Tomcat。

  如果我们用了它的共享型数据库,那么还需要修改下mysql-connector-java的版本,这个属实坑。当然了,如果想先用本地的高版本MySQL调试,直接把<version>5.1.20</version>这一行注释掉,在yml文件改下配置就行。

yml文件

  这里主要针对的是使用了共享数据库的同学。

1
2
3
4
5
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://w.rdc.sae.sina.com.cn:3306/<name>
username: xxxx
password: xxxx

配置配置数据库url之类的就好了,要注意的是要到新浪云控制台去找你的数据库名称、用户名和密码。当然如何进行数据的导入就不说了,可以直接用它的网页管理跑SQL,我把本地数据库的SQL语句导出来直接扔上去的。

启动类

  还有个需要注意的地方就是启动类了。使用内嵌的Tomcat时SpringbootdemoApplication的main方法启动的方式,需要类似于web.xml的配置方式来启动spring上下文,因此重写SpringBootServletInitializer的configure方法,在Application类的同级添加一个SpringBootStartApplication类。

打包

  用IDEA非常方便,直接command line写上clean package -Dmaven.test.skip=true,run一下就能在target文件夹下面看见war包了,上传就完事了。

之后的就不说了,新浪云都帮忙做好了,还有一些其他功能可以发掘,但是没钱打扰了。

贴一下上面说到的pom.xml部分内容

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
<version>5.1.20</version>
</dependency>