【CentOS8】使用 Tomcat 部署 Java Web 项目(使用 sdkman)

文章目录

    • 配置 Tomcat
    • 将 Tomcat 启动命令设置为 Linux 自定义服务
    • 给 Tomcat 设置管理员账号密码
    • IDEA 打包 Java web 项目

我是使用 sdkman 下载的 jdktomcat,所以接下来的部署配置都是在 sdkman 构建的环境的。想要知道如何下载 sdkman 可以看看这篇文章 — 使用 SDKMAN 管理多版本本地 Java 环境—Centos8 & Windows

配置 Tomcat

# 下载 tomcat
sdk install tomcat xxx# 授予权限
sudo chmod -R 775 /root/.sdkman/candidates/tomcat/# 启动 tomcat--cenrrent 目录下
bin/startup.sh
# 将出现
Using CATALINA_BASE:   /root/.sdkman/candidates/tomcat/current
Using CATALINA_HOME:   /root/.sdkman/candidates/tomcat/current
Using CATALINA_TMPDIR: /root/.sdkman/candidates/tomcat/current/temp
Using JRE_HOME:        /root/.sdkman/candidates/java/current
Using CLASSPATH:       /root/.sdkman/candidates/tomcat/current/bin/bootstrap.jar:/root/.sdkman/candidates/tomcat/current/bin/tomcat-juli.jar
Using CATALINA_OPTS:   
Tomcat started.# 本地访问默认为(有开启防火墙需要关闭防火墙或者开放 8080 端口) 8080-即本地 ip + :8080# 关闭 tomcat--cenrrent 目录下
bin/shutdown.sh

这个时候我们就可以通过虚拟机 ip:8080 就可以看到 tomcat 服务的默认页面了
在这里插入图片描述
出现这个页面就算成功了。

将 Tomcat 启动命令设置为 Linux 自定义服务

不过,现在的 tomcat 需要我们自己到 tomcat 目录下使用它的 startup.shshutdown.sh 进行启动和关闭,这就很麻烦,所以我们接下来就将 tomcat 在 centos 中进行设置为 service 服务。

/etc/init.d/ 目录下新建文件,命名为 tomcat

touch /etc/init.d/tomcat

将以下内容粘贴到 tomcat 文件中

#!/bin/bash
# description: Tomcat7 Start Stop Restart
# processname: tomcat7
# chkconfig: 234 20 80
JAVA_HOME=/root/.sdkman/candidates/java/current
export JAVA_HOME
PATH=$JAVA_HOME/bin:$PATH
export PATH
CATALINA_HOME=/root/.sdkman/candidates/tomcat/current
case $1 in
start)
sh $CATALINA_HOME/bin/startup.sh
;;
stop)
sh $CATALINA_HOME/bin/shutdown.sh
;; 
restart)
sh $CATALINA_HOME/bin/shutdown.sh
sh $CATALINA_HOME/bin/startup.sh
;;   
esac 
exit 0

保存后设置 tomcat 的文件属性,将 tomcat 修改为可运行的文件

chmod a+x tomcat# 设置服务运行级别
chkconfig --add tomcat# 查看自定义服务
chkconfig --list# 将出现
tomcat          0:关    1:关    2:开    3:开    4:开    5:关    6:关# 可使用命令
service tomcat start
service tomcat stop
service tomcat restart# 或则使用
systemctl start tomcat
systemctl stop tomcat
systemctl status tomcat

查看状态是这样的就算成功了!
在这里插入图片描述

给 Tomcat 设置管理员账号密码

完成这个操作以后,我们回到 tomcat 本身上来。一般来说,tomcat 管理页面是进不去的,这是因为我们还没有配置管理员账号密码。
在这里插入图片描述

# 停止 tomcat 服务
systemctl stop tomcat# 修改配置文件
vi /current/conf/tomcat-users.xml# 可以看到该文件基本上都是注释,我们只需要在最后(最后一个标签里)以下代码:
<role rolename="manager"/>  
<role rolename="manager-gui"/>  
<role rolename="admin"/>  
<role rolename="admin-gui"/>  
<role rolename="manager-script"/>  
<role rolename="manager-jmx"/>  
<role rolename="manager-status"/>  
<user username="admin" password="admin" roles="admin-gui,admin,manager-gui,manager,manager-script,manager-jmx,manager-status"/> # 进入 webapps/manager/META-INF/context.xml
# 注释以下内容
<!-- <Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" /> --># 启动服务
systemctl start tomcat

tomcat-users.xml 修改后应该是这样的:
在这里插入图片描述
context.xml 修改后应该是这样的
在这里插入图片描述
配置完成后,我们再次点击进去没有错误,显示这样的就没有错误
在这里插入图片描述

IDEA 打包 Java web 项目

在 IDEA 中打开需要部署的项目,这里需要注意下:本地 tomcat 的端口需要和虚拟机上的 tomcat 开放的端口一致,我这里因为我虚拟机中开放的端口是 8080,所以我在 IDEA 直接配置 8080 端口了。
在这里插入图片描述
配置好端口以后,接下来就直接打包项目了
在这里插入图片描述
选择以后会弹出一个选择框
在这里插入图片描述
打包以后会生成一个压缩包,这个就是我们打包以后的产物
在这里插入图片描述
将这个压缩包复制到虚拟机中的 webapps 中即可在这里插入图片描述
然后刷新一下 tomcat 服务页面,就可以看见我们刚才上传的打包产物了
在这里插入图片描述
最后,进入这个路径检查一下
在这里插入图片描述
成功!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/211647.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【开源】基于Vue+SpringBoot的用户画像活动推荐系统

项目编号&#xff1a; S 061 &#xff0c;文末获取源码。 \color{red}{项目编号&#xff1a;S061&#xff0c;文末获取源码。} 项目编号&#xff1a;S061&#xff0c;文末获取源码。 目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 数据中心模块2.2 兴趣标签模块2.3 活…

Docker-多容器应用

一、概述 到目前为止&#xff0c;你一直在使用单个容器应用。但是&#xff0c;现在您将 MySQL 添加到 应用程序堆栈。经常会出现以下问题 - “MySQL将在哪里运行&#xff1f;将其安装在同一个 容器还是单独运行&#xff1f;一般来说&#xff0c;每个容器都应该做一件事&#x…

Vite4、Vue3、Axios 针对请求模块化封装搭配自动化导入(简单易用)

针对请求模块化封装搭配自动化导入&#xff08;简单易用&#xff09; 目标目录目标代码前提步入正题src / utils / index.jssrc /api / index.jssrc /api / request.jssrc /api / service.jssrc /api / utils.jssrc /api / modules / demo.js 自动化配置vite.config.jseslint 校…

AWS 日志分析工具

当您的网络资源托管在 AWS 中时&#xff0c;需要定期监控您的 AWS CloudTrail 日志、Amazon S3 服务器日志和 AWS ELB 日志等云日志&#xff0c;以降低任何潜在的安全风险、识别严重错误并确保满足所有合规性法规。 什么是 Amazon S3 Amazon Simple Storage Service&#xff…

德迅猎鹰(云蜜罐)有什么用

蜜罐&#xff08;Honeypot&#xff09;是一种安全技术&#xff0c;用于吸引和欺骗攻击者&#xff0c;以便收集关于攻击行为的信息和情报。它模拟了一个脆弱的系统、服务或网络资源&#xff0c;看起来对攻击者具有吸引力&#xff0c;但实际上是为了引诱攻击者暴露其攻击手法和意…

Flink Flink数据写入Kafka

一、环境准备 flink 1.14写入Kafka&#xff0c;首先在pom.xml文件中导入相关依赖 <properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><flink.version>1.14.6</flink.version><spark.version>2.4.3</spa…

案例052:用于日语词汇学习的微信小程序

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

AWS基于x86 vs Graviton(ARM)的RDS MySQL性能对比

概述 这是一个系列。在前面&#xff0c;我们测试了阿里云经济版&#xff08;“ARM”&#xff09;与标准版的性能/价格对比&#xff1b;华为云x86规格与ARM&#xff08;鲲鹏增强&#xff09;版的性能/价格对比。现在&#xff0c;再来看看AWS的ARM版本的RDS情况 在2018年&#…

第3章:知识表示:概述、符号知识表示、向量知识表示

&#x1f497;&#x1f497;&#x1f497;欢迎来到我的博客&#xff0c;你将找到有关如何使用技术解决问题的文章&#xff0c;也会找到某个技术的学习路线。无论你是何种职业&#xff0c;我都希望我的博客对你有所帮助。最后不要忘记订阅我的博客以获取最新文章&#xff0c;也欢…

有什么可视化数据管理工具?

有什么可视化数据管理工具&#xff1f; 相信大家对数据分析并不陌生。数据可视化不仅可以使得数据更加直观、易于理解&#xff0c;而且可以帮助用户发现数据中的潜在规律和趋势。 但是&#xff0c;对于不熟悉编程的用户来说&#xff0c;如何将枯燥的大数据转化为可视化的图和…

springboot——自动装配

自动装配 Condition: Condition内置方法&#xff1a;boolean matches(ConditionContext context, AnnotatedTypeMetadata metadata)&#xff0c;返回值为布尔型 重写matches方法的类&#xff1a;SpringBootCondition等 SpringBootCondition&#xff1a;springboot自带的实现类…

windows如何解决端口冲突(实用篇)

在项目设计中&#xff0c;环境配置成功点击运行瞬间&#xff0c;一大堆红爆出&#xff0c;8080端口占用&#xff0c;这个是很烦人的。。。 解决方式&#xff1a; 笨方法&#xff1a;一、查看所有端口实用情况&#xff08;挨个扫&#xff09; 按住【WINR】快捷键打开运行输入…

同旺科技 USB TO RS-485 定制款适配器--- 拆解(三)

内附链接 1、USB TO RS-485 定制款适配器 ● 支持USB 2.0/3.0接口&#xff0c;并兼容USB 1.1接口&#xff1b; ● 支持USB总线供电&#xff1b; ● 支持Windows系统驱动&#xff0c;包含WIN10 / WIN11系统32 / 64位&#xff1b; ● 支持Windows RT、Linux、Mac OS X、Windo…

同旺科技 USB TO RS-485 定制款适配器--- 拆解(二)

内附链接 1、USB TO RS-485 定制款适配器 ● 支持USB 2.0/3.0接口&#xff0c;并兼容USB 1.1接口&#xff1b; ● 支持USB总线供电&#xff1b; ● 支持Windows系统驱动&#xff0c;包含WIN10 / WIN11系统32 / 64位&#xff1b; ● 支持Windows RT、Linux、Mac OS X、Windo…

TA-Lib学习研究笔记(九)——Pattern Recognition (3)

TA-Lib学习研究笔记&#xff08;九&#xff09;——Pattern Recognition &#xff08;3&#xff09; 最全面的形态识别的函数的应用&#xff0c;通过使用A股实际的数据&#xff0c;验证形态识别函数&#xff0c;用K线显示出现标志的形态走势&#xff0c;由于入口参数基本上是o…

ROS-ROS通信机制-参数服务器

文章目录 一、基础理论知识二、C实现三、Python实现 一、基础理论知识 参数服务器在ROS中主要用于实现不同节点之间的数据共享。参数服务器相当于是独立于所有节点的一个公共容器&#xff0c;可以将数据存储在该容器中&#xff0c;被不同的节点调用&#xff0c;当然不同的节点…

安卓开发APP应用程序和苹果iOS开发APP应用程序有什么区别?

随着智能手机和平板电脑在全球的普及&#xff0c;APP移动应用已成为日常生活中不可或缺的组成部分。从社交网络到电子商务平台&#xff0c;从个人理财到游戏娱乐&#xff0c;APP几乎渗透了人们所有的活动领域。在开发APP时&#xff0c;开发者通常要面对两大主流平台&#xff1a…

Docker+jenkins+gitlab实现持续集成

1.安装环境 服务器ip虚拟机版本192.168.5.132centos7.6192.168.5.152centos7.6 2. 安装docker 安装必要的一些系统工具 yum install -y yum-utils device-mapper-persistent-data lvm2添加软件源信息&#xff0c;要确保centos7能上外网 yum-config-manager --add-repo http:…

西工大计算机学院计算机系统基础实验一(函数编写1~10)

还是那句话&#xff0c;千万不要慌&#xff0c;千万不要着急&#xff0c;耐下性子慢慢来&#xff0c;一步一个脚印&#xff0c;把基础打的牢牢的&#xff0c;一样不比那些人差。回到实验本身&#xff0c;自从​​​​​​按照西工大计算机学院计算机系统基础实验一&#xff08;…

决策树 (人工智能期末复习)

几个重要概念 信息熵&#xff1a;随机事件未按照某个属性的不同取值划分时的熵减去按照某个属性的不同取值划分时的平均 熵。即前后两次熵的差值。 表示事物的混乱程度&#xff0c;熵越大表示混乱程度越大&#xff0c;越小表示混乱程度越小。 对于随机事件&#xff0c;如果它的…