已解决 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. 阅读详情

问题分析

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下面有个红点点,点开看了一下,发现报错入戏。

九师兄 2565

异常java lang AbstractMethodError

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

最佳 Java 编程 3万+

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万+

解决: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的博客 6997

记一次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...

阿呆的专栏 3178

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的博客 3554

异常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的博客 1956

java.lang.AbstractMethodError

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

chouxuanxia8517的博客 333

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

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

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

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

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

javazhuanzai的专栏 2518

Java AbstractMethodError 原因分析

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

指尖轻触 祭流年 7万+

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

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

qq_25282331的博客 4万+

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的专栏 1345

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的专栏 7501

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的专栏 8844

AbstractMethodError那些事

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值