首页IT科技记录一次游戏的作文400字(记录一次NoSuchMethodError问题的解决)

记录一次游戏的作文400字(记录一次NoSuchMethodError问题的解决)

时间2025-09-09 05:25:11分类IT科技浏览6358
导读:一、问题描述 今天在执行单元测试时遇到了一个NoSuchMethodError错误,完整的报错信息如下:...

一                、问题描述

今天在执行单元测试时遇到了一个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的同学请自行查阅相关手册)

查找

的结果如下:

js

p-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 发布!

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
如何快速让网站上词(关键词优化技巧) python简单项目(精选100个Python实战项目案例,送给缺乏实战经验的你)