安装 Java
首先进入服务器,我这里是 Ubuntu 20.04。
选择一个 Java 版本进行安装,我这里选择的是 Java 11,输入 apt install openjdk-11-jdk
。
在服务器上安装 Tomcat
首先,在 Apache 官网 查找对应版本的 Tomcat。可以看到,最新的版本是 8.5.77,下载地址是 https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.77/bin/apache-tomcat-8.5.77.tar.gz。
- 连接服务器,进入下载文件夹。我这里选择的是
/usr/local/tmp
。 - 输入命令
wget https://dlcdn.apache.org/tomcat/tomcat-8/v8.5.77/bin/apache-tomcat-8.5.77.tar.gz
开始下载。 - 下载完毕之后,输入
tar -zxvf apache-tomcat-8.5.77.tar.gz
解压文件。 - 解压完成后,移动文件夹到目标目录。这里我选择
/usr/local/tomcat
,输入命令mkdir /usr/local/tomcat
,mv apache-tomcat-8.5.77 /usr/local/tomcat
。 - 进入 tomcat 安装目录,修改
bin/startup.sh
,在其最后添加以下代码:
其中,JAVA_HOME
是刚才安装 Java 的目录,TOMCAT
是安装 tomcat 的根目录。
#set java environment
export JAVA_HOME=/usr/lib/jvm/openjdk-11
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:%{JAVA_HOME}/lib:%{JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
#tomcat
export TOMCAT=/usr/local/tomcat/apache-tomcat-8.5.77
- 进入安装目录的
bin
文件夹下,执行./startup.sh
,如果执行成功,则访问对应 ip 的 8080 端口就可以看到 tomcat 的页面了。
将项目打包
修改 pom.xml
由于项目直接打包会与服务器的 tomcat 冲突,所以需要进行一些配置。
在 上一篇 的基础上,修改 pom.xml
如下:
- 在
<dependencies>
标签中,找到spring-boot-starter-web
,在其中加入exclusion
标签排除 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>
- 在
<dependencies>
最后加入以下:
<!-- 要打包的时候,添加以下代码排除servlet,不打包就注释掉 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
- 在最后加入以下代码(与
<dependencies>
同级别):
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
<!--要打 war 包的时候,添加以下指定-->
<packaging>war</packaging>
修改完 pom.xml
之后,点击同步更新一下。
修改代码
使 SpringBootDemoApplication
继承自 SpringBootServletInitializer
,并重写 configure
方法(不确定是否必须)。
现在主 Application 代码如下:
package com.example.springbootdemo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class SpringBootDemoApplication extends SpringBootServletInitializer {
public static void main(String[] args) {
SpringApplication.run(SpringBootDemoApplication.class, args);
}
@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
return super.configure(builder);
}
@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {
return String.format("Hello %s!", name);
}
}
使用 maven 插件打包
点击 IDE 右侧 maven 栏,双击 package 命令,即可完成打包。

打包成功之后,就可以看到对应的 war 文件,在 target
目录下:

将 war 上传至服务器
将打包好的 war 文件上传至服务器,并存放在 tomcat 根目录中的 webapp
文件夹下。
修改文件名为想要的路径名称,如 hello.war
,则代表之后通过 http://ip:8080/hello
可以访问到该应用。等待一会儿,或者进入 tomcat 根目录,执行 bin/shutdown.sh
、bin/startup.sh
,重启服务即可看到效果。
另外,也可以在 ip/manager
下进行 web 应用管理,如图:

网友评论