已解决 java.lang.AbstractMethodError异常的正确解决方法,亲测有效嘿嘿嘿

java.lang.AbstractMethodError:oracle/jdbc/driver/OracleResultSetImpl.getObject 驱动版本有误。 项目场景: Springboot整个Mybatis ,MP,oracle过程问题记录。 问题描述: java.lang.AbstractMethodError: Method oracle/jdbc/driver/OracleResultSetImpl.getObject(Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/Object; is abstract 原因分析: 驱动版本有误,Mybatis 与 oracle驱动冲突,此时Mybatis依赖为2. 阅读详情
AI摘要

本文分析了Java中AbstractMethodError的成因,着重于MyBatis和MyBatis-Spring与SpringFramework的版本不兼容问题,提供了解决方案,包括检查依赖版本、清理项目、调整构建配置以及使用Maven或Gradle管理依赖。

问题分析

java.lang.AbstractMethodError 异常通常意味着在尝试调用一个抽象方法时,JVM发现该方法在运行时类中没有具体的实现。在你给出的例子中,org.mybatis.spring.transaction.SpringManagedTransaction.getTimeout 方法被调用了,但这个方法没有在运行时类中找到实现。

原因分析

出现这个异常的原因可能有多种,但通常与以下情况相关:

  1. 版本不兼容:MyBatis 和 MyBatis-Spring 之间的版本不兼容,或者与 Spring Framework 的版本不兼容。
  2. 类路径问题:项目中可能包含了多个版本的 MyBatis 或 MyBatis-Spring 库,导致 JVM 加载了错误的类。
  3. 编译与运行时环境不一致:编译时使用的库与运行时使用的库不一致。

解决思路

  1. 检查版本兼容性:

    • 查阅 MyBatis 和 MyBatis-Spring 的官方文档,确认它们与你项目中使用的 Spring Framework 版本兼容。
    • 确保所有相关依赖都是最新的或者至少是相互兼容的。
  2. 清理和重建项目:

    • 清理并重建你的项目,以确保没有旧的编译文件干扰。
  3. 检查类路径:

    • 检查你的构建配置文件(如 Maven 的 pom.xml 或 Gradle 的 build.gradle),确保没有引入多个版本的 MyBatis 或 MyBatis-Spring。
    • 使用 Maven 或 Gradle 的依赖树工具检查并排除任何不期望的依赖项。
  4. 更新依赖:

    • 如果可能,更新 MyBatis、MyBatis-Spring 和 Spring Framework 到最新版本。
  5. 检查 IDE 设置:

    • 确保 IDE 的类路径设置正确,并且没有包含任何不必要的库。

解决代码(通常不涉及直接修改代码)

下滑查看解决方法

Maven 示例(pom.xml)

确保依赖项是兼容的,并且没有重复。例如:

<dependencies>
    <!-- Spring Framework 相关依赖 -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>你的Spring版本</version>
    </dependency>
    <!-- 其他 Spring 依赖项 -->

    <!-- MyBatis 相关依赖 -->
    <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis</artifactId>
        <version>你的MyBatis版本</version>
    </dependency>
    <dependency>
        <groupId>org.mybatis.spring.boot</groupId>
        <artifactId>mybatis-spring-boot-starter</artifactId>
        <version>你的MyBatis-Spring-Boot版本</version>
    </dependency>
    <!-- 如果你不是使用 MyBatis Spring Boot Starter,则使用 MyBatis-Spring -->
    <!-- <dependency>
        <groupId>org.mybatis</groupId>
        <artifactId>mybatis-spring</artifactId>
        <version>你的MyBatis-Spring版本</version>
    </dependency> -->
</dependencies>
Gradle 示例(build.gradle)

与 Maven 类似,确保依赖项是兼容的,并且没有重复。

dependencies {
    // Spring Framework 相关依赖
    implementation 'org.springframework:spring-context:你的Spring版本'
    // 其他 Spring 依赖项

    // MyBatis 相关依赖
    implementation 'org.mybatis:mybatis:你的MyBatis版本'
    implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:你的MyBatis-Spring-Boot版本'
    // 如果你不是使用 MyBatis Spring Boot Starter,则使用 MyBatis-Spring
    // implementation 'org.mybatis:mybatis-spring:你的MyBatis-Spring版本'
}

通常,AbstractMethodError 并不直接通过修改代码来解决,而是需要检查和调整项目的依赖和配置。确保所有依赖项都是最新的且彼此兼容,是解决此类问题的关键。如果问题依然存在,可能需要查看 MyBatis 和 MyBatis-Spring 的官方文档或社区论坛,以获取更具体的帮助。

AndroidRuntime java.lang.AbstractMethodError解决方案 AndroidRuntime: java.lang.AbstractMethodError解决方案 背景介绍 今天同事尝试编译apk的release版本,编译成功,但是运行时,却爆出这个运行时异常,导致crash。 排查过程 定位出错位置 通过查看异常的堆栈,爆出异常的方法是一个我们引入的jar包里,而这jar包引用方法是compileOnly,而compileOnly依赖的用途 编译时用于构建项目,但是运行时不需要 在编译时依赖它的api,但是它API的真正实现是在运行时环境 我们具体看一下这个Abs 阅读详情

相关推荐

【未解决】IDEA:AbstractMethodError: Receiver class org.jetbrains.plugins.scala ScTraitImpl not

是这样的,偶然运行了一个程序,然后发现IDE下面有个红点点,点开看了一下,发现报错入戏。

九师兄 2568

java.lang.AbstractMethodError分析及解决思路

今天运行程序,出现了java.lang.AbstractMethodError。查阅JDK文档,解释如下: public class AbstractMethodError extends IncompatibleClassChangeError Thrown when an application tries to call an abstract method. Normally, this error is caught by the compiler; this error can only

xharvard的专栏 3万+

安卓设备安全相关技术

当前安卓设备使用的加密方案是基于Soc中一块可写入的rom实现,称为熔丝,其结果不可逆。 1、secureboot 2、AVB(Android Verify Boot) 3、dm-verity(device mapper) 4、keymaster 5、crypto 6、rpmb(replay private memory block) 7、TEE(Trust execute environment) 8、SELinux .........

weixin_43797328的博客 4838

异常:java lang AbstractMethodError

通常在尝试调用抽象方法时抛出此java.lang.AbstractMethodError。通常,此错误是在编译时本身识别的,如果在运行时抛出此错误,则该类必须不兼容(与先前存在的类不兼容) )更改。因此,它是IncompatibleClassChange Error的子类。 我们知道不能调用抽象方法,如果尝试这样做,则会收到编译时错误,因此您可能会认为在运行时如何抛出此错误? ...

最佳 Java 编程 3万+

贴片二极管SOD封装详解:SOD-123/323/523尺寸焊盘设计要点

表面贴装技术中,二极管封装尺寸直接决定PCB布局与焊接可靠性。SOD封装作为小外形二极管的主流形态,其SOD-123、SOD-323、SOD-523三种规格分别对应不同的功耗与占板面积权衡。理解封装尺寸、焊盘设计计算逻辑和钢网开窗原理,是避免立碑、虚焊等工艺缺陷的关键。在可穿戴设备、电源保护等空间受限场景中,合理选择封装不仅能优化散热路径,还能提升量产良率。本文从焊盘计算、工艺要点到选型策略,全面解析SOD封装的工程实践。

weixin_42520780的博客 307

搭建PX4开发系统(Ubuntu 22.04)

本文是《从零开始学 PX4 无人机开发》系列第二篇,适合开发者在 Ubuntu 系统下快速搭建 PX4 编译与仿真环境,支持 QGroundControl、Gazebo、MAVSDK 等完整工具链。

qq_15856721的博客 4201

记一次java.lang.AbstractMethodError异常

问题 2019-11-27 21:58:16.151 ERROR 56176 --- [ main] o.s.boot.SpringApplication : Application startup failed org.springframework.beans.factory.BeanCreationException: Error creat...

阿呆的专栏 3179

路径规划:D*Lite寻路算法详解

D*Lite详解目录

mkr67n的博客 2万+

解决:java.lang.AbstractMethodError: null

springboot 2.x 整合 sqlserver 使用 jtds连接池连数据库的时候出现异常 2017-02-15 12:12:23.955 WARN 14844 --- [ main] ationConfigEmbeddedWebApplicationContext : Exception encountered during context initializ...

EasternUnbeaten的博客 7007

卫星动力学仿真模型开发之AI初试

以下是通过AI生成的一个简单的C语言仿真模型,用于模拟卫星的姿态、轨道动力学和运动学。该模型基于基本的物理公式,假设卫星在近地轨道上运行,并忽略了一些复杂的扰动因素(如大气阻力、太阳辐射压等)。姿态动力学描述了卫星绕其质心的旋转运动。轨道动力学描述了卫星在引力作用下的运动。姿态运动学描述了卫星姿态随时间的变化。

xspace的博客 569

从Oracle到腾讯TDSQL数据库升级技术分享

腾讯TDSQL(Tencent Distributed SQL)是一款兼具关系数据库和NoSQL数据库优点的新型数据库,文章主要分享oracle升级为TDSQl数据库技术经验。

u012372850的专栏 2613

JAVA异常:java.lang.AbstractMethodError: ...tomcat.websocket.server.WsSessionListener.sessionCreated

JAVA异常:java.lang.AbstractMethodError: org.apache.tomcat.websocket.server.WsSessionListener.sessionCreated异常原因解决方案更改tomcat版本为8.5.37 最近在开发oauth2的时候,发现了这个异常 异常原因 SpringBoot2.x内置的tomcat9,tomcat9使用的是servletAPI v4 但是SpringBoot 2.x还包含着 servletAPI v3.1 解决方案 更改to

m0_46267097的博客 3561

全栈拆解华为乾崑 ADS 5:WEWA2.0智能体架构与安全风险场技术、实现多传感器全融合感知与主动安全预判、助力城市NOA/高速领航/全场景无人通行极致落地

华为乾崑ADS 5的核心颠覆性,不在于单一功能的小幅升级,而在于实现了自动驾驶从“工具式辅助驾驶”到“拟人化智能体驾驶”的全栈范式革命。通过WEWA 2.0端云协同AI智能体架构,解决了传统智驾决策僵硬、博弈能力弱、学习效率低的行业痛点;通过行业首发安全风险场技术,将自动驾驶安全体系从被动避险升级为主动预判,直接减半行车风险;通过乾崑OS专属车规系统底座,保障高阶智驾的低时延、高稳定、高可靠运行;通过多传感器超融合感知体系,实现全场景、全天候、无盲区的精细化环境理解。

getusushu的博客 290

异常java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z

@[TOC](异常java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z) Springboot整合Dubbo,在进行数据库查询时,提示该异常: java.lang.AbstractMethodError: com.mysql.jdbc.Connection.isValid(I)Z at com.zaxxer.hi...

sc1870940的博客 1957

QGC4.0.11界面修改

QGC4.0.11。

超维空间科技的博客 2466

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【不知道原因的问题】java.lang.AbstractMethodError

遇到了一个问题: java.lang.AbstractMethodError 在Java开发中,java.lang.AbstractMethodError是一个常见的运行时异常,通常出现在试图调用一个在抽象类或接口中声明但没有在实现类中具体实现的抽象方法时。当应用程序启动过滤器时遇到此错误,通常意味着存在类路径问题或者项目依赖关系出现了问题。涉及到3个方面: 1.逻辑不清楚 2.数据关系不明白 2.环境的复杂性最后我采用了环境逼近的方式,即在逻辑和数据都不明白的情况下,根据错误提示去解决代码问题。类路径问题

专注Java(全栈)应用开发,求知若渴,虚心若愚,talk is cheap, show me the code. 961

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

java.lang.AbstractMethodError

今天在写完基础类后,编辑用户的时候发生java.lang.AbstractMethodError:com.text.UserDaoImpl.editById(Ljava/lang/Integer;)Ljava/lang/Object异常。很是奇怪,认真的从controller->serv...

chouxuanxia8517的博客 336

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

java.lang.AbstractMethodError: oracle.jdbc.driver...解决方法

java.lang.abstractmethoderror: oracle.jdbc.driver...解决方法 最近遇到了一个头痛的问题,可能大家也遇到过。经过多番的询问与查找,终于知道问题原因的所在:异常内容如下: java.lang.abstractmethoderror: oracle.jdbc.driver.oracleresultsetimpl.getnstring或getrowi

javazhuanzai的专栏 2520

java web连接sqlite提示java.lang.AbstractMethodError: org.sqlite.DB.open(Ljava/lang/String;)V解决方案

这个困扰多天的问题终于解决了!!! 建立了一个java web工程,使用spring。创建了一个DBControl类,在服务器启动时加载,定义如下 在init方法中连接sqlite数据,代码如下 public void init(){ try { System.out.println("DBControl init"); Class.forName("org.sqlite.JD

imlmy的专栏 7504

Java AbstractMethodError 原因分析

背景 AbstractMethodError异常对于我来说还是比较不常遇见的,最近有幸遇到,并侥幸的解决了,在这里把此种场景剖析一番,进入正题,下面是AbstractMethodError在Java的异常机制中所处的位置: 现在明确了AbstractMethodError所具有的特性: 1.它是Error的子类,Error类及其子类都是被划分在非检查异常之列的,就是说这些异常不能在编译阶...

指尖轻触 祭流年 7万+

关于java.lang.abstractMethodError的错误解决(关于resultset)

最近在练习关于mybatis的内容,所以要用到jdbc中的ResultSet接口,于是前些天就在网上下载了connector的一个jar包,在自己电脑上尝试写出mybatis的底层,由于要用到将resultset对象内的值取出来,放入一个封装类当中,所以不可避免的要用到它的get系列方法,由于之前只学过getString啊,getInt啊之类的,但是这些方法只能取固定类型变量的值,起初想着,用if

qq_25282331的博客 4万+

Tomcat启动错误 Caused by: java.lang.AbstractMethodError

<br />2011-3-21 10:53:00 org.apache.catalina.core.AprLifecycleListener init<br />信息: The APR based Apache Tomcat Native library which allows optimal performance in production environments was not <br />found on the java.library.path: D:/Program Files/Java/

b1412的专栏 8848

spark streaming error -- java.lang.AbstractMethodError

spark streaming程序提交出现如下异常: java.lang.AbstractMethodError at org.apache.spark.internal.Logging$class.initializeLogIfNecessary(Logging.scala:99) at org.apache.spark.sql.kafka010.KafkaSourceProvider$...

wflh323的专栏 1350

AbstractMethodError那些事

Java社区 添加小编微信进入java学习交流群,小编微信:372787553,备注进群 AbstractMethodError Exception in thread “main” java.lang.AbstractMethodError 这样的异常并不常见,如果您有幸遇到了,那么一定要珍惜,否则转瞬即逝! 发生原因 为什么会发生这样的错误? 让我们看一下官方的解释: 当应用程序尝试调用抽象方法时抛出。 通常,该错误被编译器捕获; 如果某些类的定义自上次编译当前执行的方法以来不兼容地更改,则此错误只能

杨海吉 3277
上一篇: 【用JAVA实现分治算法】 1.快速排序(Quick Sort) 2.归并排序(Merge Sort) 二分查找(Binary Search),嘿嘿嘿
下一篇: 亲测有效,java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver异常的正确解决方法,已解决,嘿嘿嘿
代码无疆
博客等级 码龄3年 4万+粉丝 305原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值