NoClassDefFoundError: Could not initialize class……

2023-11-10

一、背景:在做一次应用更新发布的时候,应用发布完成,但是请求访问的时候报了NoClassDefFoundError异常,出现了如下错误:

 二、问题猜测及分析:

1、项目打包有问题或者打包不完整,导致缺少类文件,所以初始化加载失败:重新打包,并在本地验证没问题。但是更新到服务器以后,依然存在同样的问题。❌

2、通过“NoClassDefFoundError”关键字对日志文件进行筛查,发现存在其他异常信息,具体如下:

部分代码如下:

 注意⚠️:

  • 此处是Kotlin语言,companion object包裹的内容类似于Java中static
  • BankInterfaceUtils位于独立的jar包中,与PaymentTaskModel不在同一个jar包中

原因解析:IOC容器获取BankInterfaceUtils对象,但是由于本地的BankInterfaceUtils工具类的jar版本和服务器上面的jar版本不一致,所以加载实例失败,导致PaymentTaskModel无法访问(任何使用PaymentTaskModel的地方都会出现“NoClassDefFoundError”异常)

解决方法:更改服务器上面jar包的版本,使其与本地环境的版本一致

3、问题拓展:也可能是由于静态变量或静态块引起的异常,详细可参考:java.lang.NoClassDefFoundError: Could not initialize class xxx 原因及解决方法_轻松囧的博客-CSDN博客

三、总结:

遇到此类问题,可通过如下思路进行分析:

1、通过关键字“NoClassDefFoundError”或者“ExceptionInInitializerError”对日志进行筛查,找出问题的根源点。根据第一次加载时的错误日志,对代码进行核查分析。

2、检查本地环境与服务器环境所使用的外部jar包版本是否一致

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

NoClassDefFoundError: Could not initialize class…… 的相关文章

  • Java 使用服务器证书对 jar 进行签名

    是否可以使用服务器证书来签署 java web start 应用程序 我想知道的是它是否有效 我的服务器有一个受信任的证书 并且我想重复使用同一证书来签署应用程序 现在 我有这样的警告 此 jar 包含其签名者证书的 ExtendedKey
  • 将所有 BigDecimal 运算设置为特定精度?

    我的Java程序以高精度计算为中心 需要精确到至少120位小数 因此 程序中所有非整数都将由 BigDecimal 表示 显然 我需要指定 BigDecimal 的舍入精度 以避免无限小数表达式等 目前 我发现必须在 BigDecimal
  • 使用 TreeMap 和 Comparator 按值对 HashMap 进行排序

    我使用以下代码创建哈希图 然后使用树形图和比较器对哈希图中的值进行排序 然而 输出结果却出乎意料 所以任何关于我做错了什么的想法都会有帮助 Code public static void main String args System ou
  • 使用 Intellij 2017.2 /out 目录构建会重复 /build 目录中的文件

    更新到 Intellij 2017 2 后 构建我的项目会创建一个 out包含生成的源文件和资源文件的目录 这些文件与已包含的文件重复 build并导致duplicate class生成的类的编译器错误 关于 Gradle 或 Intell
  • 我该如何解决? KnapSack - 值完全相同,但每个对象都有三个权重

    我在解决我的练习时遇到问题 我读到了动态规划和算法 我认为我的练习是 特定背包问题 我用暴力法解决了它 但我无法用动态规划解决它 我有一艘重300吨的船 背包 有些晶体本身含有 3 种物质 X Y Z 每种物质都有重量 并且所有晶体都具有相
  • 通过 JDBC 连接到 DB2 时的用户和密码

    我正在尝试连接到本地 DB2 10 5 Express C 服务器 这是一个测试环境 所以我不关心安全性 我能够连接到命令行处理器 在 Windows 上运行 并且我更改了配置设置AUTHENTICATION CLIENT and TRUS
  • Java 相当于 Perl 的 s/// 运算符?

    我有一些代码正在从 Perl 转换为 Java 它大量使用了正则表达式 包括s 操作员 我已经使用 Perl 很长时间了 但仍然习惯 Java 的做事方式 特别是 字符串似乎更难使用 有谁知道或有一个完全实现的Java函数s 这样它就可以处
  • 如何让 HttpClient 返回状态码和响应正文?

    我试图让 Apache HttpClient 触发 HTTP 请求 然后显示 HTTP 响应代码 200 404 500 等 以及 HTTP 响应正文 文本字符串 重要的是要注意我正在使用v4 2 2因为大多数 HttpClient 示例都
  • Java 中支持多少维数组,例如 a[1][1][1][1]....[1]? [复制]

    这个问题在这里已经有答案了 Java支持多少维数组a 1 1 1 1 1 我可以为数组声明无限数量的维度吗 数组维数限制为 255 有趣的是 JLS定义的Java编程语言没有这样的限制 但是你可以在JVM规范 http docs oracl
  • 如何使 ScheduledExecutorService 在计划任务取消时自动终止

    我正在使用一个ScheduledExecutorService如果网络连接已打开超过几个小时 则关闭该连接 然而 在大多数情况下 网络连接在超时之前就关闭了 所以我取消了ScheduledFuture 在这种情况下 我还希望执行程序服务终止
  • 将 RequestBody json 转换为对象 - Spring Boot

    我是 java 开发的初学者 但之前有 PHP 和 Python 等编程语言的经验 对于如何进行 Spring Boot 的开发几乎没有什么困惑 我正在开发一个rest API 它有以下请求 key value key1 value1 pl
  • 如何知道 glassfish 是什么 - 完整平台或网络配置文件?

    我已经安装了glassfish 我可以跑 asadmin version 它显示了它是什么版本 但如何知道它是 完整平台 还是 Web 配置文件 你可以使用 glassfish4 bin gt asadmin list containers
  • 处理 ANTLR 4 中的错误

    遵循后接受的答案 https stackoverflow com a 18137301 2279200的指示处理 ANTLR4 中的错误 https stackoverflow com q 18132078 2279200问题 我遇到了以下
  • Android 反向地理编码不适用于华为设备

    我正在尝试通过这段代码反转地理编码纬度 经度 Geocoder geocoder new Geocoder context Locale ENGLISH try List
  • 为什么java(>=7版本)不支持运行没有main方法的程序? [关闭]

    Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 class WithoutMain static System out println Without main class Sy
  • 如何找到 Oracle 数据库的 URL?

    如何找到 Oracle 数据库的 URL 和端口 Example jdbc oracle thin host port dbName 用户名 密码 是否有我可以查看的 SQL 命令或日志 配置文件 对于甲骨文来说 有一个tnsnames o
  • java:如何设置全局线程ID?

    是否有可能为线程设置唯一ID 在分布式系统中 线程是在许多不同的机器上创建的 例如通过 RMI 我需要它来创建日志消息 根据我的研究 我知道可以使用 log4j mdc ndc 来完成 但只能在单线程中完成 我的问题是 在创建线程时必须设置
  • Elasticsearch NodeBuilder 与 TransportClient

    对于其他 Elasticsearch 开发人员来说 这可能是一个非常简单 而且愚蠢 的问题 这两者之间有什么区别 我正在从 Java Web 应用程序连接到远程 Elasticsearch 服务器 到目前为止我一直在使用 Transport
  • Java“非法访问操作”方法将被弃用? [复制]

    这个问题在这里已经有答案了 JDK 9 JVM 发出非法访问操作警告后 如果您使用一些非法访问 例如setAccessible 我的问题 Is setAccessible 以后会被封吗 此功能的官方参考 如果将被弃用 在哪里 我在任何地方都
  • 从数字列表中生成所有唯一对,n 选择 2

    我有一个元素列表 假设是整数 我需要进行所有可能的两对比较 我的方法是 O n 2 我想知道是否有更快的方法 这是我在java中的实现 public class Pair public int x y public Pair int x i

随机推荐

  • 容灾恢复

    欢迎关注 全栈工程师修炼指南 公众号 点击 下方卡片 即可关注我哟 设为 星标 每天带你 基础入门 到 进阶实践 再到 放弃学习 涉及 企业运维 网络安全 应用开发 物联网 人工智能 大数据 学习知识 花开堪折直须折 莫待无花空折枝 作者主
  • 响应式布局的实现方法和原理

    昨天我在马海祥博客上跟大家详细的介绍过 什么是响应式网页设计 我觉的响应式网页设计不仅仅是一种趋势 还更是一个新的设计解决方案 它有助于解决不同的分辨率和设备 台式电脑 笔记本电脑 平板 手机 相关的设计问题 既然是设计的问题 这里就会涉及
  • 怎样编写好的API?看完你就知道了!

    点击上方 编程技术圈 关注 星标或置顶一起成长 后台回复 大礼包 有惊喜礼包 每日英文 Do a plain and neat person looking to stay in the small and light things awa
  • Flutter 如何实现禁止手机横屏的功能

    来源 https sexywp com flutter disable landscape mode htm 在一些特定的 App 里 我们不希望手机横屏的时候 App 发生旋转 比如微信 企业微信都是这样的 代码可以这样设定 import
  • C 标准库 - 《stdlib.h》

    原文链接 https www runoob com cprogramming c standard library stdlib h html 简介 stdlib h 头文件定义了四个变量类型 一些宏和各种通用工具函数 库变量 下面是头文件
  • 基础知识:虚拟机的构成和cpu的虚拟化

    1 计算虚拟化包括了 一虚多 和 多虚一 现在阶段硬件能力过盛 一虚多 成为主流 2 裸金属架构更适合部署在资源池内如VMWARE CitrixXenServerv RHEV 适合企业使用 寄居架构适合单机 适合个人折腾 3 全虚拟化和半虚
  • vscode配置golang远程开发调试环境

    1 vscode配置golang远程开发调试环境 文章目录 1 vscode配置golang远程开发调试环境 1 1 golang远程开发应用场景 1 2 远程开发调试环境搭建 1 3 远程debug运行配置 1 1 golang远程开发应
  • [以太坊源代码分析] IV. 椭圆曲线密码学和以太坊中的椭圆曲线数字签名算法应用

    数字签名算法在Ethereum中的应用不少 目前已知至少有两处 一是在生成每个交易 Transaction tx 对象时 对整个tx对象进行数字签名 二是在共识算法的Clique算法实现中 在针对新区块进行授权 封印的Seal 函数里 对新
  • Vue-Cli的简单入门使用

    说明 这篇文章是为了让我和组里同学快速上手 学会使用Vue Cli的基本使用而写的 里面可能有许多错误 还请仔细识别 当然 欢迎指正 Vue Cli简单使用 说明 框架的创建 创建代码 安装时报错及解决办法 安装完毕后的构建操作 报错及解决
  • 必看五大安全趋势 Fortinet全球威胁态势报告发布

    全球领先的网络安全解决方案提供商Fortinet NASDAQ FTNT 于近日发布2021年下半年 全球威胁态势报告 据报告显示 当前全球网络攻击的自动化和攻击速度均显著提升 更具破坏性 不可预测性且更加持续的网络犯罪正快速演进 此外 伴
  • win10+使用cmake编译最新的ceres-solver库

    参考文献 点击这里访问 感谢大佬 说明 我这个只编译了release版本 如果还需要debug版本 cmake编译和vs编译都需要另外设置一些东西 我没有弄 文章目录 参考文献 说明 1 需要使用的库 2 需要的工具 3 准备工作 3 1
  • python学习笔记—— socket编程

    上篇 https blog csdn net qq 42489308 article details 89388112 socket编程 什么是socket 简称套接字 是进程间通信的一种方式 它与其他进程间通信的一个主要不同是 它能实现不
  • vue的组件化开发

    vue的组件化开发 组件 Component 是 Vue js 最强大的功能之一 组件可以扩展 HTML 元素 封装可重用的代码 官方文档 https cn vuejs org v2 guide components registratio
  • go context学习

    context学习 context的struct设计 type Context interface Deadline deadline time Time ok bool Done lt chan struct Err error Valu
  • shell_exec() has been disabled for security reasons错误怎么解决?

    ytkah在用composer安装插件时出现了shell exec has been disabled for security reasons错误提示 这个是php配置的问题 shell exec 函数被禁用了 怎么解决呢 shell e
  • 类外访问类的私有(保护)成员

    在C 中类外访问类的私有 private 或保护 protected 成员变量 有以下几种方法 1 通过在类中定义共有的成员函数 用成员函数去调用类的私有成员变量 在类外就可以实现对私有成员变量的访问 2 在类外实例化一个类的对象 定义一个
  • 安全仔的2023年暑期实习面试经历

    大二在校菜鸡 之前下定决心想在暑假去公司实习 投了几家 将面试经历发给大家 观安信息 岗位 渗透测试实习 一面 技术面 自我介绍 介绍大学怎么接触安全 有什么经历 网络攻防夏令营 ctf冬令营 有什么项目 SRC渗透测试挖掘 先问了项目的情
  • Valine 一款快速、简洁且高效的无后端评论系统

    Valine 一款快速 简洁且高效的无后端评论系统 简介 Valine 诞生于2017年8月7日 是一款基于LeanCloud的快速 简洁且高效的无后端评论系统 理论上支持但不限于静态博客 目前已有Hexo Jekyll Typecho H
  • 干货分享:SparkBench--Spark平台的基准性能测试

    SparkBench简介 SparkBench是Spark的基准性能测试项目 由来自IBM Watson研究中心的五位研究者 Min Li Jian Tan Yandong Wang Li Zhang Valentina Salapura
  • NoClassDefFoundError: Could not initialize class……

    一 背景 在做一次应用更新发布的时候 应用发布完成 但是请求访问的时候报了NoClassDefFoundError异常 出现了如下错误 二 问题猜测及分析 1 项目打包有问题或者打包不完整 导致缺少类文件 所以初始化加载失败 重新打包 并在