Java Web(5) Java Web打包与发布

在 Intellij IDEA 中部署 Java 应用到 阿里云 ECS

1. 打包成war文件

(1)file —> project structure —> artifacts —> +

artifact.png

使用idea运行web项目时首先会配置一个exploded类型的Web Application,选择 Web Application: Exploded
如果要生成war文件,选择 Web Application: Archive
打包方式.png

生成如下结果,其中Output directory就是生成结果的目录。

output.png

然后点击OK确定。
(2) 点击build —> build artifacts

build.png

build_war.png

点击build后,在工程目录(即artifact中的Output directory)中去找,如图:

生成的war.png

2.配置服务器

购买一个阿里云ESC(或其他服务器)。
进行运行环境配置,如tomcat和JDK。
我在配置过程中出现的两个问题:

  • /usr/software/jdk-11/jre/bin/java: No such file or directory, 高版本的jdk没有jre文件夹,环境变量不要配置JRE_HOME
  • 在启动tomcat的shutdowm.sh时出现:java.net.ConnectException: Connection refused: connect。两种可能,一种是端口被占用,可以ps aux | grep tomcat,然后kill -9 PID,另一种可能是tomcat的startup.sh启动十分慢,在还没启动就shutdown了,多等个几分钟就好了。

3.上传文件到服务器

上传到服务器的方法有很多,比如通过github中转、SCP等。
本次采用SCP方式传输。

  • 从服务器上下载文件
scp username@servername:/path/filename /var/www/local_dir(本地目录)
  • 上传本地文件到服务器
scp /path/filename username@servername:/path   
  • 从服务器下载整个目录
scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
  • 上传目录到服务器
scp  -r local_dir username@servername:remote_dir

将文件上传到服务器tomcat的webapps目录。然后启动tomcat的bin目录下的startup.sh启动服务器。再次回到webapps目录下,会发现出现tryServlet.war的加压缩文件:

webapps目录.png

3.关闭防火墙及安全组策略

要想让别的计算机能够访问服务器的8080端口,需要关闭防火墙或者让8080端口被访问。
关于防火墙的学习:

  • https://www.linuxprobe.com/chapter-08.html
  • https://www.cnblogs.com/zxg-blog/p/9835263.html
    我先查询iptables发现没有iptables。
    image.png

    然后查询fifewall,发现未启动:
    firewall.png

    但是还是无法通过别的浏览器访问:120.55.193.249:8080

通过一系列查询,才知道阿里云ESC服务器的安全组策略没有允许8080端口被访问,添加8080端口即可。


安全组1.png

安全组2.png

然后在浏览器输入 120.55.193.249:8080/tryServlet发现可以访问。

你可能感兴趣的:(Java Web(5) Java Web打包与发布)