CentOS部署Java Web项目

简介: CentOS部署Java Web项目

从打包方式,javaweb可以打包成war包和jar包两种方式。二者有一定区别,war包通常是Spring MVC项目打包,可执行的jar包通常是Spring Boot项目。

war是一个可以直接运行的web模块,通常用于网站,打成包部署到容器比如Tomcat,war不仅包含java类还可以有HTML页面、图像文件等其他资源。

普通jar包里面通常是java类,打成包便于管理、依赖。但是我们发布时候打的jar包和普通jar包不一样,这种jar包不能被其他项目所依赖,即使被依赖了也不能直接使用其中的类。一般的Spring MVC项目只能打包成war发布,而jar包是作为插件。Spring Boot项目可以打成可执行的jar包,因为Spring Boot内置了Tomcat容器。Spring Boot也可以打包成war,但是不推荐。从war和jar就可以看出来,Spring Boot比Spring MVC更好的做到了前后端分离。

一、部署war包

将war包放到Tomcat安装目录的webapps文件夹下。启动Tomcat,程序会自动解压开war包。项目部署完毕。尝试访问,如果访问失败可以查看下端口和防火墙。

二、部署jar包

1、运行jar包

java -jar demo.jar

当前ssh窗口被锁定,按CTRL + C或关闭窗口,程序会停止运行。

nohup java -jar demo.jar &

nohup 意思是不挂断运行,当终端关闭时程序仍然运行。

当用 nohup 命令时,所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。&是指在后台运行。

停止程序需使用结束进程的方式。

nohup java -jar demo.jar > ./demo.log 2>&1 &

0表示标准输入,1表示标准输出,2表示标准错误。

>表示重定向,而2>&1中的>&是一个整体,不可分开。

> ./demo.log指定日志文件为demo.log,2>&1表示将标准错误也输出到标准输出中。

2、将jar应用设置为开机自启动服务

可以使用 systemctl 也可以使用 chkconfig 。这里推荐使用systemctl。

  • chkconfig 方式
    /etc/init.d/目录下创建shell脚本demoService.sh:

#!/bin/sh
#程序名
RUN_NAME="demo.jar"
#jar 位置
JAVA_OPTS=/root/demo.jar
LOG_OPTS=/root/demo.log
#开始
start() {
        source /etc/profile; nohup java -jar $JAVA_OPTS >$LOG_OPTS 2>&1 &
        echo "$RUN_NAME started success."
}
#结束
stop() {
        echo "stopping $RUN_NAME ..."
        kill -9 `ps -ef|grep $JAVA_OPTS|grep -v grep|grep -v stop|awk '{print $2}'`
}
case "$1" in
        start)
            start
            ;;
        stop)
            stop
            ;;
        restart)
            stop
            start
            ;;
        *)
                echo "Userage: $0 {start|stop|restart}"
                exit 1
esac

设置执行权限

chmod +x /etc/init.d/demoService.sh
chmod +x /etc/init.d/demo.jar

chkconfig命令用于检查,设置系统的各种服务。

添加到chkconfig作为系统服务,并设置开机启动:

chkconfig --add demoService.sh   (添加为系统服务)
chkconfig demoService.sh on  (开机自启动)
service demoService.sh start(启动服务)
  • systemctl方式
  1. 新建启动脚本vim start.sh

#!/bin/sh
nohup java -jar /usr/local/apps/demo-service/demo.jar > /logs/demo-service.log 2>&1 &
echo $! > /var/run/demo-service.pid
  1. 新建停止脚本vim stop.sh

#!/bin/sh
PID=$(cat /var/run/shiftcalendar.pid)
PID_EXIST=$(ps aux | awk '{print $2}'| grep -w $PID)
if [ -n "$PID_EXIST" ]; then
kill -9 $PID
else
echo the process $PID is not exist
fi
  1. 添加启动权限

chmod +x start.sh
chmod +x stop.sh

/usr/lib/systemd/system/目录下创建服务demo.service

#!/bin/sh
[Unit]
Description=demo-service
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
ExecStart=/root/app/reboot_shell/start.sh
ExecStop=/root/app/reboot_shell/stop.sh
PrivateTmp=true
[Install]
WantedBy=multi-user.target

设置为开机自启动服务

systemctl enable demo.service
systemctl start demo.service
systemctl status demo.service



作者:yaogoodgoodde

链接:https://www.jianshu.com/p/64cbad3673bf

来源:简书

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章
|
6天前
|
网络协议 Java Shell
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
java spring 项目若依框架启动失败,启动不了服务提示端口8080占用escription: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that’s listening on port 8080 or configure this application to listen on another port-优雅草卓伊凡解决方案
29 7
|
24天前
|
JavaScript Java 测试技术
基于Java+SpringBoot+Vue实现的车辆充电桩系统设计与实现(系统源码+文档+部署讲解等)
面向大学生毕业选题、开题、任务书、程序设计开发、论文辅导提供一站式服务。主要服务:程序设计开发、代码修改、成品部署、支持定制、论文辅导,助力毕设!
55 6
|
1月前
|
Kubernetes Java 持续交付
小团队 CI/CD 实践:无需运维,Java Web应用的自动化部署
本文介绍如何使用GitHub Actions和阿里云Kubernetes(ACK)实现Java Web应用的自动化部署。通过CI/CD流程,开发人员无需手动处理复杂的运维任务,从而提高效率并减少错误。文中详细讲解了Docker与Kubernetes的概念,并演示了从创建Kubernetes集群、配置容器镜像服务到设置GitHub仓库Secrets及编写GitHub Actions工作流的具体步骤。最终实现了代码提交后自动构建、推送镜像并部署到Kubernetes集群的功能。整个过程不仅简化了部署流程,还确保了应用在不同环境中的稳定运行。
70 9
|
1月前
|
Java Windows
【Azure Function】部署Java Function失败:报错deploy [ERROR] Status code 401和警告 'China North 3' may not be a valid region
1:deploy [ERROR] Status code 401, (empty body). 2: China North 3 may not be a valid region,please refer to https://aka.ms/maven_function_configuration#supported-regions for values. 3:  <azure.functions.maven.plugin.version>1.36.0</azure.functions.maven.plugin.version>
38 11
|
2月前
|
NoSQL Java 关系型数据库
Liunx部署java项目Tomcat、Redis、Mysql教程
本文详细介绍了如何在 Linux 服务器上安装和配置 Tomcat、MySQL 和 Redis,并部署 Java 项目。通过这些步骤,您可以搭建一个高效稳定的 Java 应用运行环境。希望本文能为您在实际操作中提供有价值的参考。
181 26
|
2月前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
97 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
3天前
|
监控 Linux PHP
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
【02】客户端服务端C语言-go语言-web端PHP语言整合内容发布-优雅草网络设备监控系统-2月12日优雅草简化Centos stream8安装zabbix7教程-本搭建教程非docker搭建教程-优雅草solution
51 20
|
1月前
|
存储 分布式计算 Hadoop
Centos7.9安装kerberos
Centos7.9安装kerberos
82 25
|
26天前
|
存储 Shell 网络安全
Centos7.9安装openldap
Centos7.9安装openldap
52 16

热门文章

最新文章