SpringBoot项目war包部署
服务部署
记录原因
将本地SpringBoot项目通过war包部署到虚拟机中,验证服务器部署。
使用war包是为了方便替换配置文件等。
工具
| 对象 | 版本 | 
|---|---|
| Spring Boot | 2.4.0 | 
| VMware Workstation Pro | 16 | 
| Git | 2.9.4 | 
| maven | 3.3.9 | 
| JDK | jdk1.8.0_281 | 
| Tomcat | 9.0.45 | 
| Redis | 6.2.1 | 
Tomcat版本需要与SpringBoot内置版本保存大版本上一致,否则会出现问题
虚拟机这里安装不赘述。
Git
- 
进入虚拟机的 cd /usr/local/src目录,输入下载链接:wget https://www.kernel.org/pub/software/scm/git/git-2.9.4.tar.gz
- 
解压缩 tar -zxvf git-2.9.4.tar.gz
- 
安装编译Git时需要的包(一句一句执行) yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel yum install gcc perl-ExtUtils-MakeMaker
- 
删除已有的Git yum remove git
- 
编译安装 进入根目录:cd /usr/local/src/git-2.9.4 安装到/usr/local/git目录:./configure --prefix=/usr/local/git 编译安装:make && make install
- 
创建软链: ln -s /usr/local/git/bin/* /usr/local/bin/
- 
验证安装完成 git --version 

maven
- 
检查maven是否安装 mvn -v
- 
在/usr/local/src目录下下载maven压缩包 wget https://archive.apache.org/dist/maven/maven-3/3.3.9/binaries/apache-maven-3.3.9-bin.tar.gz
- 
解压压缩包 tar -zxvf apache-maven-3.3.9-bin.tar.gz
- 
移动到/usr/local mv apache-maven-3.3.9 /usr/local/maven3
- 
配置环境变量 - 
打开环境变量文件 profilevim /etc/profile
- 
在最末尾添加环境变量 export MAVEN_HOME=/usr/local/maven3 export PATH=$MAVEN_HOME/bin:$PATH
- 
tips:这里准备部分Linix 文本编辑命令 i 进入编辑模式-在光标所在位置开始输入 esc 退出编辑模式 :wq 退出编辑模式后进行文件保存并推出 更多 https://www.linuxprobe.com/linux-vim-commend.html
- 
使配置生效 source /etc/profile
 
- 
- 
检查是否安装成功 mvn -v 
JDK
- 
检查是否安装 java -version
- 
安装JDK时建议在本地下载好安装包之后使用winSCP等软件从本地上传到服务器中,注意一定要下载正确的版本( jdk-8uxxx-linux-x64.tar.gz)。JDK下载地址如下:https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html
- 
将下载好的JDK安装包上传到服务器的/usr/local/src目录下,上传完成后解压。 tar -zxvf jdk-8u201-linux-x64.tar.gz
- 
将解压好的JDK移动到/usr/local下 mv jdk1.8.0_201 /usr/local
- 
配置环境变量 - 
进入配置文件 vim /etc/profile
- 
在最后添加如下环境变量配置后保存并退出: export JAVA_HOME=/usr/local/jdk1.8.0_201 export JRE_HOME=/usr/local/jdk1.8.0_201/jre export PATH=$JAVA_HOME/bin:$PATH export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
- 
使配置生效 source /etc/profile
 
- 
- 
验证安装 java -version

Tomcat
- 
下载Tomcat到本级,通过filezilla等工具上传到 /usr/local中https://tomcat.apache.org/download-90.cgi#9.0.45
- 
解压缩 tar -zxvf apache-tomcat-9.0.45.tar.gz
- 
如果有强迫症,可删除压缩包 rm /usr/local/apache-tomcat-9.0.45.tar.gz
- 
启动 sh /usr/local/apache-tomcat-9.0.45/bin/startup.sh
- 
关闭 sh /usr/local/apache-tomcat-9.0.45/bin/shutdown.sh
- 
实时日志查看 tail -500f /usr/local/apache-tomcat-9.0.45/logs/catalina.out
Redis
- 
通过本地下载redis上传到服务器或直接在服务器下载。我是选择稳定版本下载,传到虚拟机上。 https://redis.io/download
- 
解压缩 tar -zxvf redis-6.2.1.tar.gz
- 
Yum安装gcc依赖,并编译安装redis cd /usr/local/redis-6.2.1 yum install gcc make MALLOC=libc cd src && make install
- 
启动redis(另外可将其配置成一个服务) ./redis-server

连接不同问题解决
- 
ping ip ip不同检查防火墙 
- 
虚拟机检查端口号是否开启 修改端口后需要重启防火墙服务才能生效 centos8 检查端口是否开启 firewall-cmd --query-port=8080/tcp 开启端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 重启防火墙: systemctl restart firewalld.service这里 centos8与之前的版本端口号开启有差异。最开始虚拟机Tomcat起来后我windows访问8080端口不通,后根据这两步访问成功。 
项目准备
如果是使用Idea构建一个新项目,可以在创建时选择打包方式,如果构建时选择的是jar包方式,则需要一些变动。
新项目
构建时选择打包方式为war包

Jar包项目
指的是打包方式为jar的项目。
- 
打包时需要忽略内置Tomcat,本地运行时需要使用。因此本地运行时关闭注释。 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <!--忽略内置tomcat容器--> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
- 
忽略内置Tomcat的同时,需要额外添加 servlet依赖<!--由于忽略内置tomcat容器,因此使用javax.servlet方法需要额外添加依赖--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> </dependency>
- 
添加war包名,忽略打包文件(可选) <build> <finalName>demo</finalName> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <excludes> <!--打包时忽略自定义类配置提示工具--> <exclude> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-configuration-processor</artifactId> </exclude> </excludes> </configuration> </plugin> </plugins> </build>
打包
提供两种方法。
- Idea 点击Bulid>Build Artifacts>选择 demo.war

- 
使用maven的打包命令 mvn clean package

启动
- 将打包好的war包通过filezilla等工具上传到虚拟机 tomcat下的webapp目录中

- 
启动虚拟机上的Tomcat,并访问,请求得到响应即成功 http://192.168.xxx.xxx:8080/demo/
踩坑
Tomcat启动后,使用如下日志命令监控项目启动,出现问题直观明了。
tail -500f /usr/local/apache-tomcat-9.0.45/logs/catalina.out
- 
不管项目本地配置的端口号、访问url是什么,部署到虚拟机上都是使用Tomcat的端口号加war包名,如 8080/demo/
- 
由于我访问的是本地数据库,因此需要修改项目配置文件中数据库地址,部署项目时报错 java.sql.SQLException: null, message from server: “Host ‘xxx’ is not allowed to connect...这是由于数据库服务器未给服务部署服务器访问权限,具体修改参考 https://blog.csdn.net/xionglangs/article/details/50385057 
 

 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号