首页 > 其他分享 >记录一次NoSuchMethodError问题的解决

记录一次NoSuchMethodError问题的解决

时间:2022-09-29 19:13:50浏览次数:82  
标签:ConfigurationImpl hibernate java 记录 jar NoSuchMethodError validator 解决 org

一、问题描述

今天在执行单元测试时遇到了一个NoSuchMethodError错误,完整的报错信息如下:

...
Caused by: javax.validation.ValidationException: HV000183: Unable to initialize 'javax.el.ExpressionFactory'. Check that you have the EL dependencies on the classpath, or use ParameterMessageInterpolator instead
	at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.buildExpressionFactory(ResourceBundleMessageInterpolator.java:102)
	at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.<init>(ResourceBundleMessageInterpolator.java:45)
	at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolator(ConfigurationImpl.java:423)
	at org.hibernate.validator.internal.engine.ConfigurationImpl.getDefaultMessageInterpolatorConfiguredWithClassLoader(ConfigurationImpl.java:575)
	at org.hibernate.validator.internal.engine.ConfigurationImpl.getMessageInterpolator(ConfigurationImpl.java:364)
	at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.<init>(ValidatorFactoryImpl.java:144)
	at org.hibernate.validator.HibernateValidator.buildValidatorFactory(HibernateValidator.java:38)
	at org.hibernate.validator.internal.engine.ConfigurationImpl.buildValidatorFactory(ConfigurationImpl.java:331)
	at javax.validation.Validation.buildDefaultValidatorFactory(Validation.java:103)
	at com.focus.candy.rpc.IValidation.<clinit>(IValidation.java:23)
	... 65 more
Caused by: java.lang.NoSuchMethodError: javax.el.ExpressionFactory.newInstance()Ljavax/el/ExpressionFactory;
	at org.hibernate.validator.messageinterpolation.ResourceBundleMessageInterpolator.buildExpressionFactory(ResourceBundleMessageInterpolator.java:98)
	... 74 more

这意思是说,想要程序调用javax.el.ExpressionFactory.newInstance这个方法,但是到ExpressionFactory里面一看,哈,这个方法他不!存!在!
他这么大一个方法,怎么好好的就没了呢?
好吧,这就是接下来要调查的事情。

二、排查过程

一般来说,应该是在类路径里面有两个类名相同,包路径也相同的类。
程序调到了错误的同名类,所以找不到方法。
让我们来看看到底是哪个jar包的小可爱在这捣乱。
使用idea的同学请双击Shift键,全局搜索ExpressionFactory。(使用其他IDE的同学请自行查阅相关手册)
查找的结果如下:
file
在jsp-api-2.1.jar和javax.el-api-2.2.4.jar里面都存在javax.el.ExpressionFactory。
然后把类打开看看,发现jsp-api-2.1.jar里面的ExpressionFactory没有newInstance方法。
好吧,把jsp-api-2.1.jar排掉,问题解决。

三、解决方法

嗯,把jsp-api-2.1.jar排掉。
不过这不是重点。重点是找到冲突的类,然后解决这个冲突。
解决方法有可能是排除不需要的jar包,也可能是升级jar包或者换个jar包,这个要依据当时的情况来看了。

本文由博客一文多发平台 OpenWrite 发布!

标签:ConfigurationImpl,hibernate,java,记录,jar,NoSuchMethodError,validator,解决,org
From: https://www.cnblogs.com/bailiyi/p/16742658.html

相关文章

  • sshd服务(1)优化ssh连接速度,解决等待时间长问题
    参考文档优化ssh连接速度,解决等待时间长问题、ssh持久化连接优化ansible修改ssh配置文件:/etc/ssh/sshd_config1、关闭DNS反查使用了dns反查,这样的话当ssh某个IP时,系......
  • SAP License:SAP移动开发解决方案
    2022年2月23日,为进一步发展开放式合作伙伴和开发人员生态系统,​​SAP​​美国分公司日前宣布与Xamarin和Service2Media携手合作,为开发人员提供移动应用开发框架。借助此......
  • 【python】nc数据集转tif时栅格错位的解决办法
    nc转tif在数据处理中也是老生常谈了,网上也有很多代码。我之前转换的时候也是挺顺利的,但是今天在处理数据的时候发现转出的tif和原nc数据存在错位现象,如下图所示: ......
  • mac解决~/.vuerc may be outdated. Please delete it and re-run vue-cli in manual m
    mac在使用vue-cli创建项目的时候,会出现这个错误 ERROR ~/.vuercmaybeoutdated.Pleasedeleteitandre-runvue-cliinmanualmode.   这是在~/下面有一个......
  • 【问题】记录spark查询ES,数据重复的问题
    真实环境遇到spark查询ES,出现数据重复的现象。记录一下整个背景和解决问题过程。记录过程比较简单,真实排查过程艰难定位到最终原因记录spark查询ES,数据重复的问题1.环境......
  • mysql8日志占满磁盘解决办法
    SHOWBINARYLOGS;setglobalbinlog_expire_logs_seconds=60*60*24;showvariableslike'%expire%';flushprivileges;永久改动可以找到/etc/mysql/my.cnf(Ubunt......
  • 401 错误原因和解决方案
    401.1您未被授权查看该页HTTP错误401.1-未经授权:访问由于凭据无效被拒绝。出现问题的原因:计算机用户名ftpname帐号的密码和IIS中记录的不一致。出现这个问题的......
  • 企业IT运维开发一体化解决方案
    在业务随需应变的时代,企业通过IT投入不断强化信息掌控能力从而提升竞争力。IT不仅仅是服务于企业,更重要的是,IT将驱动业务的发展,在IT与业务走向融合的大趋势下,IT服务管理正......
  • 做题记录整理dp15 P1772. [ZJOI2006] 物流运输(2022/9/28)
    P3648[APIO2014]序列分割第一次做斜率优化的题题解看懂了,但没有完全看懂等以后得回来看一次#include<bits/stdc++.h>#definefor1(i,a,b)for(inti=a;i<=b;i++)......
  • 企业IT运维开发一体化解决方案
    在业务随需应变的时代,企业通过IT投入不断强化信息掌控能力从而提升竞争力。IT不仅仅是服务于企业,更重要的是,IT将驱动业务的发展,在IT与业务走向融合的大趋势下,IT服务管理正在......