如何解决报错:NoClassDefFoundError:ognl.AbstractMemberAcces
如何解决报错:NoClassDefFoundError:ognl.AbstractMemberAcces

如何解决报错:NoClassDefFoundError:ognl.AbstractMemberAcces

一直被这个问题困扰,发现只要使用thymeleaf的if和unless语法(其他更高级的语法和switch语法我没试),就会报这样的错误:

java.lang.classNotFoundException: ognl.AbstractMemberAccess

最开始认为是thymeleaf的问题,尝试了降级jar包都不行,后来发现是ognl的问题,升级降级也不行,就这样磨了一周。。。

终于今天受不了了,在小黄鱼上花钱找人解决这个问题,闲鱼上的大佬也是花了一个小时最终才解决,这问题对于新手来说太难解决了

问题描述:无法使用thymeleaf的if和unless语法,只要使用后台就报错:java.lang.classNotFoundException: ognl.AbstractMemberAccess

背景:javaweb开发,还没接触spring和maven

平台:windows IDEA

问题原因:多个项目/模块的ognl的jar包冲突

解决办法:

只设置一个library,多个项目模块add这个library即可,步骤如下:

1,打开项目模块设置,新建一个library,选择你的所有依赖jar包:

注:因为要导入好几个包,所以最后library的命名自动为第一个jar包

然后点击你要加入的模块(可以多选),然后点击ok

2,步骤2可以有两种方式

(1)第一种方式很简单,直接点击下面的problems:

点击fix,然后点击add,左后点击下面的ok即可

(2)第二种方式较麻烦,点击Artifacts,选择你的模块,右侧output layout,点击WEB-INF.lib:

选中lib后点击上面的加号,新增library file:

点击选中你的library,点击ok

效果如下:

3,完成


如果后面新增了模块,直接Add to modules:

然后点击problems,再点击对应项目的fix:

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注