hibernate连接接mysql时候出现java.lang.ClassNotFoundException: org.aspectj.lang.Signature错误

【springboot】org.aspectj.lang.ProceedingJoinPoint获取返回类型、参数名称/值等 1、参数值 Object[] args = joinPoint.getArgs(); 2、参数名称 Signature signature = joinPoint.getSignature(); if (signature instanceof MethodSignature) { MethodSignature methodSignature = (MethodSignature) signature; String[] properties = methodSignature.getP 阅读详情

这个搞了我两天的问题算的上我至今遇到的最蛋疼的问题了,似乎网上有人也遇到过,但是他们的情况都与我不一样,问题的根源是

mysql.jdbc包的版本不对.先贴上异常:

Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:244)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:208)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:418)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:87)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:692)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:724)
    at cn.itheima.test.MyTestForHibernate.main(MyTestForHibernate.java:23)
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: HHH010003: JDBC Driver class not found: com.mysql.jdbc.Driver
    at org.hibernate.c3p0.internal.C3P0ConnectionProvider.configure(C3P0ConnectionProvider.java:131)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:217)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:189)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:234)
    ... 14 more
Caused by: org.hibernate.boot.registry.classloading.spi.ClassLoadingException: Unable to load class [com.mysql.jdbc.Driver]
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:232)
    at org.hibernate.c3p0.internal.C3P0ConnectionProvider.configure(C3P0ConnectionProvider.java:128)
    ... 22 more
Caused by: java.lang.NoClassDefFoundError: org/aspectj/lang/Signature
    at java.lang.Class.forName0(Native Method)
    at java.lang.Class.forName(Class.java:274)
    at org.hibernate.boot.registry.classloading.internal.ClassLoaderServiceImpl.classForName(ClassLoaderServiceImpl.java:226)
    ... 23 more
Caused by: java.lang.ClassNotFoundException: org.aspectj.lang.Signature
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 26 more

再说说解决问题的思路,首先观察异常栈,初一看是找不到org.aspectj.lang.Signature,通过加入这个类,这个异常消失了,但是程序还是不能走,最后又报空指针异常,最开始我从空指针异常出发去寻找问题,发现是大海捞针.我又回到问题的原点去思考,为什么加载com.mysql.jdbc.Driver会用到aspectj,看上去很奇怪.于是我开始在异常栈的每一个方法入口加断点.发现在加载com.mysql.jdbc.Driver的Class.forName()在接受到"com.mysql.jdbc.Driver",true,和一个classloader这三个参数后发生了异常,进入此方法真正起到作用的一个叫forName0()的native 方法,由于是本地方法,所以很难找到代码,找到估计也很难看懂.于是写测试程序,在对三个参数都进行控制变量的试验后发现在把第二个参数由true改为false后,问题消失.所以基本可以确定是在类加载器加载完后,对类的初始化的时候引用了不在build path 中的 org.aspectj.lang.Signature导致错误.引入一个aspectj的包确实能治标,但是不能治本,这就说明问题的本源出现在com.mysql.jdbc.Driver的兼容性上(其他未知的原因?),通过将mysql-connector-java包由5.0.8换成5.1.7.问题全部消失.由于在maven的中央仓库中找不到5.0.8的源码,我也实在没力气再去探索5.0.8的包的问题了.

这件事情还有一个蛋疼的剧情,那就是在我导入别人电脑上能跑的demo代码后发现还是不行,结果发现不知道什么时候无意中在tomcat的lib文件夹中放入了一个5.0.8的mysql-connector-java包.结果由于tomcat的库build的order在web库之前,导致,在发生包冲突的时候总是引入5.0.8的版本的jar包.通过设置buildpath中的order and export也能解决问题.

总结:此次虽然花了点时间,但是还是有收获的:

1.在解决问题的过程中,对debug,异常,类加载,class文件格式等的基础知识巩固加强了,基础真的很重要.基础不好的永远是在等别人给他指路,自己是瞎子,找不到方向.2.第三方jar包的依赖有时候蛮蛋疼的,所有的第三方代码都会提出对JDK的要求,但是他们自己之间的不协调就很难知晓,如果不去仔细的看他们的文档,甚至查看代码,想要独立搭建系统估计很困难,这可能是框架式开发中的一个大难题了.4.框架和常用工具的文档和代码有空还是要看看,只有真正明白他们的工作原理和细节,处理一些问题才能得心应手.4.有的时候debug的思路比技巧还要重要,一定要多思考和实验.

ECU-TEST笔记&使用技巧01 说明 1)所述均基于如下环境:ECU-TEST 8.0、Win10系统、NI Veristand 2018(HIL测试)。不排除因为版本及软件环境问题,所述方法不奏效或有更好的方法,欢迎交流,一起提高。 2)本博客以问答形式进行,所述问题均来自于实际测试(包括MIL、HIL测试)遇到的问题及需求,目的是提高测试效率和自动化测试序列的可维护性。 3)本博客尽量从测试方法及ECU-TEST原... 阅读详情

相关推荐

论文理解【LLM-Agent】——【SkillOpt】Executive Strategy for Self-Evolving Agent Skills

SkillOpt 将 agent skill 从人工或一次性 prompt artifact 转化为可验证、可控、可迁移的文本空间“可训练状态”,通过有界编辑、验证门控、拒绝编辑反馈和 slow/meta update,在不更新模型权重的情况下显著提升多类 agent 任务表现

佚失的诗篇 590

AOP编程过程中的Signature接口

此接口通常用于跟踪或记录应用程序以获取有关连接点的反射信息,下面是官方给的一个使用的例子 aspect Logging { Logger logger = Logger.getLogger("MethodEntries"); before(): within(com.bigboxco..*) && execution(public * *(..)) { Signature sig = thisJoinPoint....

mzcan666的博客 2855

解决AutoDock与Python版本冲突导致的内存泄漏问题:从BHtree *错误到环境配置优化

本文深入解析了AutoDock分子对接中常见的‘BHtree *’内存泄漏错误,其根源在于SWIG接口模块与Python运行环境的版本不匹配。文章提供了根治方案:通过构建Python 2.5.4与MGLTools 1.5.6的黄金兼容组合,并详细指导环境清理、安装配置及实战测试,从而彻底解决该内存泄漏问题,确保AutoDock工作流的稳定运行。

g5h6i的博客 1114

java.lang.NoClassDefFoundError: org/aspectj/lang/Signature

用jdbc连mysql时,遇到这个问题,将从mysql网站下载来的包里的aspectjrt.jar加到classpath里面就搞定了

Jan的专栏 4104

树莓派34/100 - Pico读取MPU6050加速度和陀螺仪传感器数据

树莓派Pico连接MPU-6050模块(三轴陀螺仪+三轴加速度),读取运动姿态数据。

申龙斌的程序人生 5088

Android CCodec (十七) 硬件解码调用分析-1(基于V4l2)

简单的分析V4L2DecodeComponent和其相关内容,后续针对解码调用单独分析。

给大佬递杯卡布奇诺的博客 6593

javax.servlet.ServletException: org/aspectj/lang/Signature,说找不到类

肯定是没有加载对包的版本啦. 这一次类是找到了,但是可能有版本的问题导致类里面没有你被调用的方法. 问题出在/lib/aspectjrt.jar 文件上,你可以去GOOGLE上找到相同版本的jar文件再下载一次. 

血色残阳的专栏 2013

单片机原理及应用知识点汇总(一)

在键闭合稳定时,读取键的状态,并且必须判别;、串行通信的优点是只需一对传送线,成本低,适于远距离通信,缺点是传送速度较低。、并行通信的优点是传送速度高,缺点是所需传送线较多,远距离通信不方便。、串行通信中,为使设备同步工作,需要通信双方有两个共同的要求,一是。系列单片机的指令中,既有带借位的减法指令,又有不带借位的减法指令。、简述在使用普通按键的时候,为什么要进行去抖动处理,如何处理。、在异步通信的帧格式中,数据位是低位在前高位在后的排列方式。、异步通信中,波特率是指每秒传送二进制代码的位数,单位是。

T19900的博客 696

Hibernate开发中常见错误总结

org.hibernate.MappingException: Unknown entity: cn.itcast.hibernate717.helloworld.Person hibernate框架根本不知道Person这个持久化类的存在 Caused by: java.sql.SQLException: Field 'id' doesn't have a default value 如果

涂作权的博客 3万+

在 Eclipse 中接入 DeepSeek:开启 Java 开发新效率

DeepSeek 能够根据自然语言描述,精准生成高质量的 Java 代码片段。无论是简单的方法编写,比如 “编写一个 Java 方法,用于计算两个整数的乘积”,还是复杂的类和功能模块创建,例如 “创建一个 Java 类,实现文件的读写操作,并包含异常处理机制”,它都能快速给出合理且可运行的代码示例。DeepSeek 生成的代码不仅实现了基本功能,还遵循 Java 的编码规范,添加了必要的注释,让代码更易于理解和维护,大大节省了开发者从头编写代码的时间和精力。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4068

基于YOLOv8的违规抽烟/打电话检测系统:从数据集构建到部署实战

模型优点缺点精度高速度慢(5 FPS)SSD速度快小目标检测差YOLOv5平衡性好官方支持停止YOLOv8最新、最快、最准需要PyTorch环境YOLOv8相比前代:骨干网络升级(C2f模块)无锚框检测(Anchor-Free)动态任务对齐分配(TaskAlignedAssigner)支持分类/检测/分割/姿态估计。

YOLO 98

J2EE开发工作中遇到的异常问题及解决方法总结

转自:http://blog.csdn.net/rchm8519/article/details/41624381 1. HttpClient I/O exception: 错误信息:I/O exceptioncaught when processing request:Connection timed out:connect 错误原因:IP不正确。 解决方法:改正IP 2. Ambiguous handler methods mapped 错误信息:java.lang.Il...

codeinglife的博客 2157

AI产品经理面试宝典第9天:关于AI产品经理的挑战与转型怎么回答

AI技术重构产品逻辑,AI产品经理需直面三大核心命题:用户定位差异、技术融合边界、商业价值转化。本文从千道真题中提炼出面试高频考点,剖析AI产品经理如何突破传统思维定式,在B端需求与C端体验间构建价值桥梁,用数据驱动产品创新,破解技术落地的隐性壁垒。掌握这三重跃迁法则,助你在AI浪潮中脱颖而出。

打造全国最全的AI Agent开发知识领域的博客 175

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

java.lang.NoClassDefFoundError这类错误通常令人困惑,因为它发生在运行时期,而非编译阶段,我将在本篇博客中帮助你理解此错误,并提供一个详细的解决方案。

小明的Java问道之路 9万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

Hibenate错误汇总:java.lang.NoClassDefFoundError:

一、 java.lang.NoClassDefFoundError:org.apache.lucene.index.CorruptIndexException 因为缺少lucene-core-3.0.2.jar包。 二、Hibenate异常汇总:java.lang.NoClassDefFoundError: org/jboss/logging/BasicLogger Except

以马内利的博客 1499

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

java.lang.NoClassDefFoundError: org/hibernate/Session的异常

今天写程序突然报这个错误,挺郁闷的,因为这个包是导入别人的(事后才发现) 问题是所有类都没报错,挺闷的废话多不说了   这个错误明显是找不到类库   首先检查这个项目的属性中的类库和你本机的类库是否位置相同,如果路径不同,请你更换成自己的本机的路径 我就是吃这个亏了,demo:c3p0,ojdbc这些类,导入后,这些类不会自动更新成你本机的路径,(此时你会发现项目的所有包都是正确的,...

fehly的专栏 333

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

spring-framework-3.2.4.RELEASE 综合hibernate-release-4.3.5.Final一个错误Caused by: java.lang.NoClassDefFou...

LZ一体化的今天spring-framework-3.2.4.RELEASE 综合hibernate-release-4.3.5.Final一个错误Caused by: java.lang.NoClassDefFound Caused by: java.lang.NoClassDefFoundError: org/hibernate/service/jta/platform/spi/Jt...

weixin_33695450的博客 143

Caused by: java.lang.NoClassDefFoundError:

记录一下,报错原因;之前也报这个错误,让我一顿好找,之前解决后,这个问题居然有出现了,让我感觉很熟悉的错误,但是一下有想不起来,然后仔细看了下报错信息:Caused by: java.lang.NoClassDefFoundError: 这个就很明确了,就是说有个类不能解析,也就是找不到; 就在Mapper.xml文件找了下,如果问题就处在这里, 这个如果是正确的按:Ctrl+鼠标左键就能进入该实...

qq_40297463的博客 2万+

Spring系列之@Aspect中5中通知详解

@Aspect中有5种通知 @Before:前置通知, 在方法执行之前执行 @Aroud:环绕通知, 围绕着方法执行 @After:后置通知, 在方法执行之后执行 @AfterReturning:返回通知, 在方法返回结果之后执行 @AfterThrowing:异常通知, 在方法抛出异常之后 这几种通知用起来都比较简单,都是通过注解的方式,将这些注解标注在@Aspect类的方法上,这些方法就会对目标方法进行拦截,下面我们一个个来看一下。 @Before:前

azhou的代码园 1816

第一次使用aspectj记录

一.使用原因         需求是,在增、删、改时记录用户的ID、被操作数据的ID,并插入数据库 二、开发过程         比较坎坷。以前只是知道有这种方法,但怎么实现却是第一次。         首先,参考的是:http://blog.csdn.net/paincupid/article/details/50534412

李欢欢的博客 677

spring boot 相关错误总结(1)

一、 连接数据库时未配置方言。 报错信息: Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.D...

tyrant2015的博客 1108

关于 Spring AOP (AspectJ) 你该知晓的一切

【版权申明】未经博主同意,谢绝转载!(请尊重原创,博主保留追究权) http://blog.csdn.net/javazejian/article/details/54629058 出自【zejian的博客】 关联文章: 关于Spring IOC (DI-依赖注入)你需要知道的一切 关于 Spring AOP (AspectJ) 你该知晓的一切本篇是年后第一篇博文,由于博主用了不少

zejian的博客 12万+

Springboot Aop使用

Spring AOP理解

铁马冰河入梦来 1512

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

通过本文ClassNotFoundException问题能够得到解决。

小明的Java问道之路 4万+

SpringAOP基本操作

首先创建一个Maven Web项目 最后点击finish mavenweb项目就创建好了 创建好后src/main下不存在java和resources文件夹需要手动创建 设置好后在pom.xml中导入spring和aspectjweaver依赖 Aop需要spring-aop和aspectjweaver依赖支持 <!-- spring-webmvc 可以导入spring全部核心jar包 --> <dependency&gt...

Mr_wyl的博客 399

Caused by java lang NoClassDefFoundError org/hibernate/cfg

Caused by java lang NoClassDefFoundError org/hibernate/cfg

jrrfgj的博客 2694
上一篇: eclipse查看异常打印信息和借此debug的方法
下一篇: hibernate连接mysql数据库出现 Field 'id' doesn't have a default value的问题
lust_devil
博客等级 码龄16年 2粉丝 10原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值