基于tomcat运行jenkins常见的报错处理
目录
1.jenkins.util.SystemProperties$Listener错误
升级jdk11可能遇到的坑
2.java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration
3.There were errors checking the update sites: UnknownHostException:updates.jenkins.io
1.jenkins.util.SystemProperties$Listener错误
[root@master tomcat-8.5.98]# tail -10f logs/localhost.2024-02-06.log
rg.apache.catalina.core.StandardContext.listenerStart 配置应用程序监听器[jenkins.util.SystemProperties$Listener]错误
java.lang.UnsupportedClassVersionError: jenkins/util/SystemProperties$Listener has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0 (无法载入的类 [jenkins.util.SystemProperties$Listener])
错误消息指出
jenkins.util.SystemProperties$Listener类是由更高版本的Java Runtime编译的(类文件版本55.0),而当前运行环境的Java Runtime只识别到版本52.0的类文件。类文件版本55.0对应于Java 11,而版本52.0对应于Java 8。这意味着Jenkins WAR文件是为Java 11或更高版本编译的,而你的Tomcat服务器是在Java 8或更低版本的环境下运行的。
PS:当前系统为centos7,tomcat版本为8.5.98,jenkins的版本为2.426.3LTS,java8
可能单看tomcat服务的catalina.out日志看不出具体的问题,需要结合localhost日志排查
解决办法:升级java环境至11版本,即升级jdk11
jdk11下载地址(根据系统选择安装包):Java Downloads | Oracle

升级jdk11可能遇到的坑
启动tomcat时直接报错:
The JRE_HOME environment variable is not defined correctly
JRE_HOME=/home/jdk11/jre
This environment variable is needed to run this program这个错误消息表明系统中
JRE_HOME环境变量没有被正确地定义。JRE_HOME是一个环境变量,它指向 Java Runtime Environment (JRE) 的安装目录。当尝试运行某些 Java 程序或工具时,它们可能需要这个环境变量来找到正确的 JRE 安装位置。
PS:默认的jdk11目录下没有jre文件
[root@master ~]# cd /usr/local/jdk11/
[root@master jdk11]# ll -h
总用量 24K
drwxr-xr-x 2 root root 4.0K 2月 6 11:04 bin
drwxr-xr-x 4 root root 112 2月 6 11:04 conf
drwxr-xr-x 3 root root 132 2月 6 11:04 include
drwxr-xr-x 2 root root 4.0K 2月 6 11:04 jmods
drwxr-xr-x 72 root root 4.0K 2月 6 11:04 legal
drwxr-xr-x 6 root root 4.0K 2月 6 11:04 lib
drwxr-xr-x 3 root root 18 2月 6 11:04 man
-r--r--r-- 1 10668 10668 160 12月 20 06:09 README.html
-rw-r--r-- 1 10668 10668 1.3K 12月 20 06:09 release
解决:进入jdk11目录下,执行如下命令:
./bin/jlink --module-path jmods --add-modules java.desktop --output jre
[root@master jdk11]# ll -h
total 24K
drwxr-xr-x 2 root root 4.0K Feb 6 14:23 bin
drwxr-xr-x 4 root root 112 Feb 6 14:23 conf
drwxr-xr-x 3 root root 132 Feb 6 14:23 include
drwxr-xr-x 2 root root 4.0K Feb 6 14:23 jmods
drwxr-xr-x 8 root root 94 Feb 6 15:08 jre
drwxr-xr-x 72 root root 4.0K Feb 6 14:23 legal
drwxr-xr-x 6 root root 4.0K Feb 6 14:23 lib
drwxr-xr-x 3 root root 18 Feb 6 14:23 man
-r--r--r-- 1 10668 10668 160 Dec 20 06:09 README.html
-rw-r--r-- 1 10668 10668 1.3K Dec 20 06:09 release
之后可在/etc/profile文件添加环境变量(根据实际情况添加):
export JAVA_HOME=/path/jdk11
export JRE_HOME=/path/jdk11/jre # 替换为实际的JRE路径
export PATH=$JRE_HOME/bin:$PATH
2.java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration

解决办法:
1.可以连接互联网的情况下
yum install -y fontconfig,再重新启动tomcat
2.无法连接互联网
找一台可以连接互联网的机器,仅下载fontconfig的rpm包及其依赖包
yumdownloader --resolve --destdir=/root/java/ fontconfig dejavu-sans-fonts fontpackages-filesystem libexpat.so.1 libfreetype.so.6 libuuid.so.1
下载好后,打包成tar包,上传到jenkins服务器上并解压安装(可能环境不同,所需的依赖包也不一致,根据提示安装即可),再重新启动tomcat后,可正常访问登入Jenkins
[root@maste java]# rz
[root@maste java]# rpm -ivh --force ./*.rpm
Preparing... ################################# [100%]
Updating / installing...
1:fontpackages-filesystem-1.44-8.el################################# [ 10%]
2:dejavu-fonts-common-2.33-6.el7 ################################# [ 20%]
3:dejavu-sans-fonts-2.33-6.el7 ################################# [ 30%]
4:libuuid-2.23.2-65.el7_9.1 ################################# [ 40%]
5:libpng-2:1.5.13-8.el7 ################################# [ 50%]
6:expat-2.1.0-15.el7_9 ################################# [ 60%]
7:bzip2-libs-1.0.6-13.el7 ################################# [ 70%]
8:freetype-2.8-14.el7_9.1 ################################# [ 80%]
9:fontconfig-2.13.0-4.3.el7 ################################# [ 90%]
10:fontconfig-2.13.0-4.3.el7 ################################# [100%]
3.There were errors checking the update sites: UnknownHostException:updates.jenkins.io
出现 "There were errors checking the update sites: UnknownHostException: updates.jenkins.io" 错误通常意味着 Jenkins 无法连接到
updates.jenkins.io,这可能是由于网络问题、DNS 解析问题、代理设置不正确、或者updates.jenkins.io暂时不可访问。
可能是你本地的网络环境无法访问外网
解决方法:
1.检查网络、DNS
2.更换Jenkins 更新站点配置,默认的jenkins更新站点是国外的,可能无法访问,可更换国内的更新站点,如:https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
登入jenkins,点击 管理jenkins===》插件==》高级设置,替换升级站点的URL提交

相关文章:
基于tomcat运行jenkins常见的报错处理
目录 1.jenkins.util.SystemProperties$Listener错误 升级jdk11可能遇到的坑 2.java.lang.RuntimeException: Fontconfig head is null, check your fonts or fonts configuration 3.There were errors checking the update sites: UnknownHostException:updates.jenkins.i…...
算法学习——LeetCode力扣二叉树篇1
算法学习——LeetCode力扣二叉树篇1 144. 二叉树的前序遍历 144. 二叉树的前序遍历 - 力扣(LeetCode) 描述 给你二叉树的根节点 root ,返回它节点值的 前序 遍历。 示例 示例 1: 输入:root [1,null,2,3] 输出&a…...
二叉树的遍历及创建
typedef char T;struct TreeNode {T _data;TreeNode* left;TreeNode* right; }; 1、二叉树的遍历---DFS 3 5 6 …...
图形学:Transform矩阵(3维 2维) 平移,旋转,缩放
0. 简介 在图形学领域中,Transform矩阵(变换矩阵)是一种表示图形对象在二维或三维空间中的位置、方向和大小变化的数学工具。它们用于执行各种图形变换,如平移、旋转、缩放。Transform矩阵通常表示为一个二维或三维矩阵ÿ…...
Docker学习历程
Docker学习历程 Q1、docker还没启动Q2、Docker容器名称冲突的问题Q3:启动minio时发现,容器已经再重启Q4:容器被占用的情况Q5:查看日志 Q1、docker还没启动 docker run --env MODEstandalone --name nacos --restartalways -d -p …...
Android:Volley框架使用
3.15 Volley框架使用 Volley框架主要作为网络请求,图片加载工具。当应用数据量小、网络请求频繁,可以使用Volley框架。 框架Github地址:https://github.com/google/volley Volley框架的简单使用,创建项目Pro_VolleyDemo。将Github上下载Volley框架源代码,volley-master.zi…...
前端修炼手册(uniapp的api篇)
一、页面相关API uni.navigateTo 该API用于跳转到应用内的某个页面,可以传递参数。 uni.navigateTo({url: /pages/detail/detail?id1 })uni.redirectTo 该API用于关闭当前页面并跳转到应用内的某个页面,可以传递参数。 uni.redirectTo({url: /pages/…...
JAVA面试题16
什么是Java中的反射机制?它的用途是什么? 答案:Java的反射机制是指在运行时,通过获取类的信息来操作类的属性、方法和构造函数等。它可以用来创建对象、调用方法,以及实现动态代理等功能。 什么是Java中的泛型&#x…...
P1044 [NOIP2003 普及组] 栈题解
题目 有一个单端封闭的管子,将N(1<N<18)个不同的小球按顺序放入管子的一端。在将小球放入管子的过程中也可以将管子最顶上的一个或者多个小球倒出来。请问:倒出来的方法总数有多少种? 输入输出格式 输入格式 输入文件只含一个整数n…...
【DSP】数字信号处理发展里程碑(AI【文心一言】 辅助生成)
在远离尘嚣的学术殿堂中,数字信号处理(DSP)这一学科犹如一颗璀璨的明珠,其发展历程充满了传奇色彩。下面,就让我们一起穿越时空,回到那些激动人心的时刻,见证数字信号处理从无到有、从弱到强的壮…...
【JavaScript 】finally() 方法和Filter() 方法
JavaScript 中的finally() 方法 finally是 JavaScript 构造中使用的方法try-catch。try它在and阻塞之后执行catch,无论 Promise 是已履行还是已拒绝。该函数的主要作用是执行必要的清理任务并向用户传达消息。一个常见的用例可能是通知用户“您的请求已被处理”&am…...
假期作业8
线程和进程服务器 线程 #include <myhead.h>#define SIP "192.168.0.114" #define SPORT 8888void *task(void *arg){printf("客户端连接\n");sleep(1);pthread_exit(NULL); }int main(int argc, const char *argv[]) {int sfd socket(AF_INET, S…...
基于vue+node.js的校园跳蚤市场系统多商家
校园跳蚤市场系统可以在短时间内完成大量的数据处理、帮助用户快速的查找校园跳蚤市场相关信息,实现的效益更加直观。校园跳蚤市场系统中采用nodejs技术和mysql数据库。主要包括管理员、发布者和用户三大部分,主要功能是实现对个人中心、用户管理、发布者…...
Linux操作系统基础(六):Linux常见命令(一)
文章目录 Linux常见命令 一、命令结构 二、ls命令 三、cd命令 四、mkdir命令 五、touch命令 六、rm命令 七、cp命令 八、mv命令 九、cat命令 十、more命令 Linux常见命令 一、命令结构 command [-options] [parameter]说明: command : 命令名, 相应功能的英文单词…...
【Android-Compose】Material3 新版下拉刷新 PullRefresh
这里写自定义目录标题 1、(新)用于 Jetpack Compose 的刷新指示器1.1 SwipeRefresh 迁移到新的 PullRefresh1.2 迁移步骤1.3 自定义指示器 2、原始文档(SwipeRefresh )的使用依赖导入2.1 使用方法2.2 完整示例(包括视图…...
FANUC机器人外部远程启动的相关参数设置示例
FANUC机器人外部远程启动的相关参数设置示例 如下图所示,在MENU---设置---选择程序中,设置程序选择模式:RSR(这个根据自己实际使用的自动启动方式来决定,你用RSR选RSR,用PNS就选PNS), 自动运行开始方法:选择UOP,即RSR1-RSR8的启动信号分别对应UI9-UI16, 最后,点击…...
供货商、品牌方、供应链如何对接快团团头部大团长?这三个关键点你一定要记住
供货商、品牌方、供应链如何对接快团团头部大团长?这三个关键点你一定要记住 有很多的品牌方、供应链、工厂在线上拿到了不少的社群快团团团长的资源,但是真正对接上的寥寥无几,哪怕自己的品做得非常好,但是都在这个行业触了霉头…...
LLMs之Llama2 70B:《Self-Rewarding Language Models自我奖励语言模型》翻译与解读
LLMs之Llama2 70B:《Self-Rewarding Language Models自我奖励语言模型》翻译与解读 目录 《Self-Rewarding Language Models》翻译与解读 Abstract 5 Conclusion结论 6 Limitations限制 《Self-Rewarding Language Models》翻译与解读 地址 文章地址࿱…...
电商小程序06用户审核
目录 1 创建自定义应用2 显示待办数量3 创建审核页面4 开发审核功能5 搭建布局6 最终效果总结 上一篇我们讲解了用户注册的功能,用户注册之后状态是待审核,需要管理员进行审核。通常给管理员提供一套PC端的软件进行相关的操作,在低代码中&…...
vue3跨组件(多组件)通信:事件总线【Event Bus】
★推荐方案:使用 events npm库; 可用范围:vue、react、angular等任何框架都可使用;且使用方式完全一致; 本文仅介绍、讲解对web页面端项目的常用API;通过events实现事件总线功能; event库概述&a…...
汽车生产虚拟实训中的技能提升与生产优化
在制造业蓬勃发展的大背景下,虚拟教学实训宛如一颗璀璨的新星,正发挥着不可或缺且日益凸显的关键作用,源源不断地为企业的稳健前行与创新发展注入磅礴强大的动力。就以汽车制造企业这一极具代表性的行业主体为例,汽车生产线上各类…...
多模态大语言模型arxiv论文略读(108)
CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文标题:CROME: Cross-Modal Adapters for Efficient Multimodal LLM ➡️ 论文作者:Sayna Ebrahimi, Sercan O. Arik, Tejas Nama, Tomas Pfister ➡️ 研究机构: Google Cloud AI Re…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
Device Mapper 机制
Device Mapper 机制详解 Device Mapper(简称 DM)是 Linux 内核中的一套通用块设备映射框架,为 LVM、加密磁盘、RAID 等提供底层支持。本文将详细介绍 Device Mapper 的原理、实现、内核配置、常用工具、操作测试流程,并配以详细的…...
Python ROS2【机器人中间件框架】 简介
销量过万TEEIS德国护膝夏天用薄款 优惠券冠生园 百花蜂蜜428g 挤压瓶纯蜂蜜巨奇严选 鞋子除臭剂360ml 多芬身体磨砂膏280g健70%-75%酒精消毒棉片湿巾1418cm 80片/袋3袋大包清洁食品用消毒 优惠券AIMORNY52朵红玫瑰永生香皂花同城配送非鲜花七夕情人节生日礼物送女友 热卖妙洁棉…...
LLMs 系列实操科普(1)
写在前面: 本期内容我们继续 Andrej Karpathy 的《How I use LLMs》讲座内容,原视频时长 ~130 分钟,以实操演示主流的一些 LLMs 的使用,由于涉及到实操,实际上并不适合以文字整理,但还是决定尽量整理一份笔…...
LRU 缓存机制详解与实现(Java版) + 力扣解决
📌 LRU 缓存机制详解与实现(Java版) 一、📖 问题背景 在日常开发中,我们经常会使用 缓存(Cache) 来提升性能。但由于内存有限,缓存不可能无限增长,于是需要策略决定&am…...
Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...
【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error
在前端开发中,JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作(如 Promise、async/await 等),开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝(r…...
零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...
