迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 >

Java Struts2 框架 java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY 错误解决

作者:迹忆客 最近更新:2022/05/12 浏览次数:

java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY 错误是我在最初学习 Java 的 Struts2 框架时碰到的第二个问题。该错误的具体堆栈信息如下

java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY
        at org.apache.logging.log4j.core.config.ConfigurationSource.<clinit>(ConfigurationSource.java:58)
        at org.apache.logging.log4j.core.config.NullConfiguration.<init>(NullConfiguration.java:32)
        at org.apache.logging.log4j.core.LoggerContext.<clinit>(LoggerContext.java:74)
        at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.createContext(ClassLoaderContextSelector.java:254)
        at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:218)
        at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:136)
        at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:123)
        at org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:117)
        at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:150)
        at org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
        at org.apache.logging.log4j.LogManager.getContext(LogManager.java:194)
        at org.apache.logging.log4j.LogManager.getLogger(LogManager.java:581)

在网上查了资料,出现该问题的原因是

Apache Log4j2出现了“核弹级”漏洞,其中针对jdk8以上的修复方案常见为,将log4j-core升级为2.15.0版本; 升级后应用出现:java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY报错。

因为在 Struts2 中添加了 log4j-core-2.17.2.jar 包。而另一个用于 log4j 的jar包 log4j-api 我是直接用的 struts-2.5.30 中自带的 log4j-api-2.12.4.jar 包。它要低于 log4j-core 包的版本,因此这里的解决方案就是同步升级 log4j-api 包。只需要换成 log4j 包中的 log4j-api-2.17.2.jar 即可

log4j

升级了 log4j-api 包之后,未再出现 java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY 错误。

本站文章均为原创或翻译,转载请发邮件至 1244347461@qq.com 进行申请,未经许可,禁止转载。经作者同意之后,转载请以链接形式注明出处

本文地址:

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

热门文章

教程更新

热门标签

扫码一下
查看教程更方便