mybatis-plus p6spy 报错,java.lang.NoClassDefFoundError: Could not initialize class com.p6spy.engine.sp

正确解决java.lang.ClassNotFoundException异常的有效解决方法 阅读详情

按照 mybatis-plus的文档来加入 p6spy 后,执行单元测试出现两个错误,

https://baomidou.com/guide/p6spy.html

执行 SQL 分析打印

该功能依赖 p6spy 组件,完美的输出打印 SQL 及执行时长 3.1.0 以上版本

错误1:

java.lang.NoClassDefFoundError: Could not initialize class com.p6spy.engine.spy.P6ModuleManager
	at com.p6spy.engine.spy.P6SpyDriver.findPassthru(P6SpyDriver.java:117)
	at com.p6spy.engine.spy.P6SpyDriver.connect(P6SpyDriver.java:87)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)

 错误2:

java.lang.ExceptionInInitializerError
	at com.p6spy.engine.spy.P6SpyDriver.findPassthru(P6SpyDriver.java:117)
	at com.p6spy.engine.spy.P6SpyDriver.connect(P6SpyDriver.java:87)
	at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:138)
	at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:358)
	at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:206)
	at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:477)
	at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:560)
	at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:115)
	at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:112)
	at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:158)
	at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:116)
	at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
	at org.mybatis.spring.transaction.SpringManagedTransaction.openConnection(SpringManagedTransaction.java:80)
	at org.mybatis.spring.transaction.SpringManagedTransaction.getConnection(SpringManagedTransaction.java:67)
	at org.apache.ibatis.executor.BaseExecutor.getConnection(BaseExecutor.java:337)
	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.prepareStatement(MybatisSimpleExecutor.java:93)
	at com.baomidou.mybatisplus.core.executor.MybatisSimpleExecutor.doQuery(MybatisSimpleExecutor.java:68)
	at org.apache.ibatis.executor.BaseExecutor.queryFromDatabase(BaseExecutor.java:325)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:156)
	at org.apache.ibatis.executor.BaseExecutor.query(BaseExecutor.java:136)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:147)
	at org.apache.ibatis.session.defaults.DefaultSqlSession.selectList(DefaultSqlSession.java:140)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate$SqlSessionInterceptor.invoke(SqlSessionTemplate.java:426)
	at com.sun.proxy.$Proxy80.selectList(Unknown Source)
	at org.mybatis.spring.SqlSessionTemplate.selectList(SqlSessionTemplate.java:223)
	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.executeForMany(MybatisMapperMethod.java:173)
	at com.baomidou.mybatisplus.core.override.MybatisMapperMethod.execute(MybatisMapperMethod.java:78)
	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy$PlainMethodInvoker.invoke(MybatisMapperProxy.java:148)
	at com.baomidou.mybatisplus.core.override.MybatisMapperProxy.invoke(MybatisMapperProxy.java:89)
	at com.sun.proxy.$Proxy89.selectList(Unknown Source)
	at cn.com.git.batch.mapper.test.DemoMapperSelectTest.getByWrapper(DemoMapperSelectTest.java:97)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
	at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
	at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
	at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
	at org.springframework.test.context.junit4.statements.RunBeforeTestExecutionCallbacks.evaluate(RunBeforeTestExecutionCallbacks.java:74)
	at org.springframework.test.context.junit4.statements.RunAfterTestExecutionCallbacks.evaluate(RunAfterTestExecutionCallbacks.java:84)
	at org.springframework.test.context.junit4.statements.RunBeforeTestMethodCallbacks.evaluate(RunBeforeTestMethodCallbacks.java:75)
	at org.springframework.test.context.junit4.statements.RunAfterTestMethodCallbacks.evaluate(RunAfterTestMethodCallbacks.java:86)
	at org.springframework.test.context.junit4.statements.SpringRepeat.evaluate(SpringRepeat.java:84)
	at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:251)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97)
	at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
	at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
	at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
	at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
	at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
	at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61)
	at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70)
	at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
	at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
	at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190)
	at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:89)
	at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:41)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:541)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:763)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:463)
	at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:209)
Caused by: java.lang.NumberFormatException: For input string: "2  "
	at java.lang.NumberFormatException.forInputString(Unknown Source)
	at java.lang.Long.parseLong(Unknown Source)
	at java.lang.Long.parseLong(Unknown Source)
	at com.p6spy.engine.spy.option.P6OptionsRepository.parse(P6OptionsRepository.java:86)
	at com.p6spy.engine.spy.option.P6OptionsRepository.setOrUnSet(P6OptionsRepository.java:74)
	at com.p6spy.engine.spy.option.P6OptionsRepository.set(P6OptionsRepository.java:59)
	at com.p6spy.engine.outage.P6OutageOptions.setOutageDetectionInterval(P6OutageOptions.java:100)
	at com.p6spy.engine.outage.P6OutageOptions.load(P6OutageOptions.java:56)
	at com.p6spy.engine.spy.P6ModuleManager.loadOptions(P6ModuleManager.java:180)
	at com.p6spy.engine.spy.P6ModuleManager.registerModule(P6ModuleManager.java:153)
	at com.p6spy.engine.spy.P6ModuleManager.<init>(P6ModuleManager.java:125)
	at com.p6spy.engine.spy.P6ModuleManager.initMe(P6ModuleManager.java:65)
	at com.p6spy.engine.spy.P6ModuleManager.<clinit>(P6ModuleManager.java:58)
	... 67 more

检查了配置如下,pom中引入包正确

		<dependency>
		  <groupId>p6spy</groupId>
		  <artifactId>p6spy</artifactId>
		  <version>3.9.1</version>
		</dependency>  

yml文件中配置oracle的连接应该正确,

    url: jdbc:p6spy:oracle:thin:@localhost:1521:orcl
    driver-class-name: com.p6spy.engine.spy.P6SpyDriver
    type: com.zaxxer.hikari.HikariDataSource

spy.properties 配置也是从官网copy的没啥问题,最后从git中下载了mybatis-plus的测试项目运行没问题,把运行正常的spy.properties复制到我的项目之后项目运行正常了,比对发现,因为复制的时候2后面多了个空格,所以他取值的时候按照2 来解析出错,删除后正常运行,

 

 

sid图像数据_遥感影像数据 影像数据基本概念影像数据是由卫星或飞机上的成像系统获得的影像,多为遥感影像数据。影像数据的每个像元都有一个值,表示传感器探测到像素对应地面面积上目标物的电磁辐射强度,也叫亮度值、灰度值。SuperMap支持的影像数据格式有:*.img、*.tif、*.tiff、*.bmp、*.jpg、*.png、*.gif、*.raw、*.sid等。计算机以二进制记录数据,所以其量化的等级以二进制来划分,即2n。... 阅读详情

相关推荐

波克 上海 Unity开发笔试题 2024

主要分为四部分,如果没有准备好,不要点击笔试链接,进入就会自动开始。

z2014z的博客 3392

p6spy配置详解

2P6SpyDriver底层是实现与com.mysql.jdbc.Driver类似都是实现java.sql.Driver接口。【注】 如果以上配置无法满足你的需求,可以查看一下详细的spy.properties说明,可以根据自己的需求配置。p6spy是一个开源项目,通常使用它来跟踪数据库操作,查看程序运行过程中执行的sql语句。P6spyLogFormatStrategy.java 自定义日志输出内容。到此配置完成,启动项目,即可在控制台上查看你配置的日志格式。2、 切换driverClass(必须)...

weixin_45738731的博客 6816

矩形口径喇叭天线设计——参数设置

我们建立好矩形口径喇叭天线的模型后(模型建立可参考B站相关视频或者李明洋的《HFSS天线设计》),如何修改参数达到我们的指标呢?

m0_57263863的博客 1万+

p6spy使用小结

hibernate打印sql

qq_33854869的博客 1949

LVGL高效加载外部Flash图片资源的实现与优化

本文深入探讨了在嵌入式UI开发中,如何为LVGL高效加载外部Flash中的图片资源。针对内部Flash容量不足的痛点,详细解析了LVGL的图片处理原理,并对比了内存映射与流式解码两种主流实现方案。文章重点提供了性能优化技巧与实战避坑指南,旨在帮助开发者实现流畅的图片加载体验,解决SPI Flash读取慢、内存占用高等核心挑战。

t1u2v的博客 462

阻抗匹配与史密斯(Smith)圆图

在找到点B和B'后,我们就能够测量A'到B和B'到D的弧长,前者就是C的归一化电纳值,后者为L的归一化电抗值。当然,表面上看新的点好像是一个不同的阻抗,实际上Z和1/Y表示的是同一个元件(这个新值在圆图上呈现为一个不同的点,而且反射系数也不相同,依次类推)。出现这种情况的原因是我们的图形本身是一个阻抗图,而新的点代表的是一个导纳。这个方程是在复平面(Γr, Γi)上、圆的参数方程(x - a)² + (y - b)² = R²,它以[r/(r + 1), 0]为圆心,半径为1/(1 + r)。

qq_55759599的博客 3961

P6Spy

P6Spy是一个可以用来在应用程序中拦截和修改数据操作语句的开源框架。通过P6Spy我们可以对SQL语句进行拦截,相当于一个SQL语句的记录器,这样我们可以用它来作相关的分析,比如性能分析。   一、P6Spy的安装与使用 1、从 http://www.p6spy.com/ 下载P6Spy的文件包,也可以下载它的源文件包来研究; 2、把P6Spy的jar包p6spy.jar放到classp

kevin_Luan的专栏 2100

C/C++面试八股文汇总

以对象管理资源,利用的就是C++构造的对象最终会被对象的析构函数销毁的原则。上述的的申请、使用、释放资源的程序较为简单,但是如果程序很复杂的时候,需要为所有的new 分配的内存delete掉,导致极度臃肿,效率下降,更可怕的是,程序的可理解性和可维护性明显降低了,当操作增多时,处理资源释放的代码就会越来越多,越来越乱。栈在函数调用时,第一个进栈的是主函数中后的下一条指令(函数调用语句的下一条可执行语句)的地址,然后是函数的各个参数,在大多数的C编译器中,参数是由右往左入栈的,然后是函数中的局部变量。

wzzrh的博客 1万+

Cannot create JDBC driver of class ‘com.p6spy.engine.spy.P6SpyDriver‘

这是由于在tomcat/conf/conf/context.xml中使用了driverClassName="com.p6spy.engine.spy.P6SpyDriver"驱动,而tomcat本身并没有相关的P6Spyjar,只需要将其jar导入即可。下载连接 https://download.csdn.net/download/kevinlcsdn/25640091 ...

kevinlcsdn的博客 2268

计量经济学tempdisagg的python库:年度时序变月度

计量经济学tempdisagg的python库:年度时序变月度

素质云笔记 1526

windows下宝塔安装教程

windows下宝塔安装教程 目录宝塔是什么?宝塔安装流程1.下载2.配置3.登录4.安装的环境套件小结 宝塔是什么? 宝塔是管理服务器的免费的软件,宝塔上面可以进行对你的服务器批量进行管理,对于运维人员来说还是必不可少的一个软件,值得使用。 宝塔安装流程 1.下载 链接: https://download.bt.cn/win/panel/BtSoft.zip 下载后安装买最好自定义目录,方便找 2.配置 下载完成后会出现这个页面,对着页面进行配置 点击默认密码复制进来,这里注意一点就是一定要查看

你在看屏幕的同时,屏幕也在注视着你 4422

集成p6spy到spring中

网上好多帖子都是说,修改原有 JDBC Driver为:com.p6spy.engine.spy.P6SpyDriver  然后修改spy.properties 中的 realdriver值为原有的JDBC Driver  如果在spring开发环境中使用org.springframework.jdbc.datasource.DriverManagerDataSource来模拟dataSour

三月神的专栏 6686

Openclaw错误分析与解决方案之:All models are temporarily rate-limited. Please try again in a few minutes

Openclaw错误分析与解决方案之: All models are temporarily rate-limited. Please try again in a few minutes.

多媒体编程、网络编程、系统编程、网络安全编程、驱动编程 1617

配置sqlP6Spy配置信息说明

时间紧张,先记一笔,后续优化与完善。 P6SPY 是一个监控JDBC执行语句的开源产品,利用P6SPY很容易的就可以监控到JDBC中执行的SQL语句,便于系统调试和性能调优。 P6SPY 实现道理是对JDBC的症结类停止了一次包装,让应用系统调用自己的类;自己的类截获到SQL语句后再调用实在的JDBC驱动停止执行SQL,这样,在自己的类里面就可以够监控到所有的SQL语句。    

z69183787的专栏 1万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

p6spy整合spring boot

1,下载p6spy 2.修改yaml文件 #静态访问路径 spring: mvc: static-path-pattern: /res/** datasource: # driver-class-name: com.mysql.cj.jdbc.Driver driver-class-name: com.p6spy.engine.spy.P6SpyDriver username: root password: woaini # url: jdbc

盗演 991

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

数据库连接池 ( 六 ) SQL监测p6spy

数据库连接池 第六部分 SQL监测p6spy

yuanchun的知识整理 1154

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

p6spy 非常典型 启用SQL日志

官网地址 gitHub地址 在项目的pom.xml中添加依赖 修改项目数据库连接地址Connection URL jdbc:mysql://host/db 修改为jdbc:p6spy:mysql://host/db 修改数据库 driver-class-name driver-class-name: com.mysql.cj.jdbc.Driver 修改为com.p6spy.eng...

zyh20090823的博客 1116

mysql驱动P6SpyDriver java.sql.SQLException: connect error

java.sql.SQLException: connect error, url jdbc:mysql://xx.xx.xx.xxx:3306/abc?useUnicode=true&characterEncoding=UTF-8&serverTimeZone=GMT, driverClass com.p6spy.engine.spy.P6SpyDriver at com.alibaba.druid.pool.DruidAbstractDataSource.cre...

qq690452074的专栏 2707

SpringBoot项目中使用p6spy实现打印拼接好的sql语句

现在很多Java项目都是用的mybatis对数据库进行操作 在开发调试的过程中,SpringBoot项目可以通过配置,把mybatis的sql打印出来,但是配置完成后,打印出来的sql是预编译的sql,而不是拼接完成的sql,就是那种带问号的sql,然后问号具体的值是在下一行的Parameters里打印出来的,每次看sql的时候,还需要自己复制出来,然后手动把问号替换掉,这样就很不方便,是不是有点烦。 所以,今天就给大家介绍一个非常好用的工具,来解决上边的问题 这个工具就是p6spy,好,下面就是开始

曹举的个人博客 1531

P6spy sql跟踪使用

 P6spy sql跟踪使用 1      准备 2      使用 将p6spy.jar加入工程的lib中 将spy.properties加入到工程classpath下面 3      配置 配置原始的driverClassName为com.p6spy.engine.spy.P6SpyDriver;

u010648190的专栏 1105

零侵入式 SQL 监控:用 P6Spy 快速定位数据库问题

P6Spy是一个无侵入式的JDBC代理框架,能够实时拦截并记录数据库操作,帮助开发者快速定位SQL问题。它通过伪装成JDBC驱动,在不修改业务代码的情况下捕获完整SQL语句和执行时间。集成步骤简单:添加依赖、修改数据源配置、创建spy.properties文件即可使用,支持自定义日志格式。特别适合开发测试环境调试MyBatis/Hibernate等ORM框架的SQL执行,但生产环境需谨慎使用以避免性能损耗。该工具是Java开发者排查数据库问题的利器,能有效替代传统打印日志的调试方式。

lfeishumomol的博客 1226

p6spy-部署在系统中

p6spy-部署在系统中,输出sql语句   1、添加p6spy.jar。   2、将spy.properties放到src下,最后部署到类路径下。   3、修改database.properties中的数据库驱动,如:database.connection.driver=com.p6spy.engine.spy.P6SpyDriver   4、修改spy.properties中的属性:

guxianyang的博客 1229

【SpringBoot应用篇】SpringBoot集成p6spy格式化SQL

P6Spy 的一个非常典型的用例是启用 SQL 日志记录来解决开发过程中的各种数据库相关问题。 springboot集成P6Spy,mybatis,用的application.properties,配置直接复制可用 1.pom.xml添加依赖 <dependency> <groupId>p6spy</groupId> <artifactId>p6spy</artifactId> <version>3

拾一二的博客 1万+

【Springboot系列】Springboot整合p6spy

weixin_43579360的博客 1490

Cannot create JDBC driver of class 'com.p6spy.engine.spy.P6SpyDriver'

Cannot create JDBC driver of class 'com.p6spy.engine.spy.P6SpyDriver'开始不知为何报如此错,因为用IronTrackSQL已经不是一次两次了   jar包,spy.properties都应该没问题,但是就是报这个错.后来在网上查到,把spy.properties放到tomcat/bin目录下即可解决该问题.   这种问题真...

努力的低着头 3253

P6Spy 监控JDBC详细配置说明

P6Spy 监控JDBC详细配置说明 author:ddwcyl    P6SPY 是一个监控JDBC执行语句的开源产品,利用P6SPY很容易的就能监控到JDBC中执行的SQL语句,便于系统调试和性能调优。P6SPY 实现原理是对JDBC的关键类进行了一次包装,让应用系统调用自己的类;自己的类截获到SQL语句后再调用真实的JDBC驱动进行执行SQL,这样,在自己的类里面就可以监控到所有

1万+
上一篇: HikariPool OracleDriver was not found, trying direct instantiation. + Driver does not support g
下一篇: mybatis-plus公共字段自动填充 date型失败,org.apache.ibatis.type.TypeException: Error setting null for parameter
小瑞
博客等级 码龄19年 240粉丝 274原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值