当前位置: 首页 > 知识库问答 >
问题:

野飞16, log4j 2.17.0, NoSuchFieldError:EMPTY_BYTE_ARRAY

姚培
2023-03-14

我在wildfly启动期间收到一个错误,并显示以下消息:

NoSuchFieldError:空字节数组

该消息还指出,此错误发生在拖航部署中。有谁能告诉我这里发生了什么以及如何解决这个问题?

下面是堆栈跟踪的开始。

at org.wildfly.extension.undertow@24.0.1.Final//org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:90)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
at java.base/java.lang.Thread.run(Thread.java:829)
at org.jboss.threads@2.4.0.Final//org.jboss.threads.JBossThread.run(JBossThread.java:513)

造成原因:java.lang.NoSuchFieldError:EMPTY_BYTE_ARRAYdeployment.taggable-server.war//org.apache.logging.log4j.core.config.ConfigurationSource.(ConfigurationSource.java:56)在deployment.taggable-server.war//org.apache.logging.log4j.core.config.NullConfiguration.(NullConfiguration.java:32)在deployment.taggable-server.war//org.apache.logging.log4j.core.LoggerContext.(LoggerContext.java:85)在deployment.taggable-server.war//org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.createContext(ClassLoaderContextSelector.java:254)在deployment.taggable-server.war//org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:218)在deployment.taggable-server.war//org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:136)在deployment.taggable-server.war//org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:123)在deployment.taggable-server.war//org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:117)在部署. taggable-server. war//org. apache. log. log4j. core. implified的deployment.taggable-server.war//org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory. java: 150)。在org.apache.logging.log4j.api@2.14.1//org. apache. log. log4j.LogManager. getContext(LogManager. java: 196)在org.apache.logging.log4j.api@2.14.1//org. apache. log. log4j。LogManager. getLogger(LogManager. java: 599)

共有2个答案

薛云瀚
2023-03-14

您需要从部署中排除API模块。您的另一个选择是使用WildFly 26,其中包括API的2.16版本。

江智
2023-03-14

我也遇到了同样的问题,我用jboss部署结构解决了这个问题。xmlinsidesrc/main/webapp/WEB-INF/如下:

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
  <deployment>
     <exclusions>
        <module name="org.apache.logging.log4j.api"/>
    </exclusions>
  </deployment>
</jboss-deployment-structure>
 类似资料:
  • 我在Wildfly服务器9.0.1中遇到了意想不到的问题。有时服务器运行,有时它会引发以下错误。我搜了很多,有些论坛说去掉断点,我也试过,但是没有成功

  • 我有一个使用jpa hibernate的项目。我有一种坚持。xml文件,并希望它自动在数据库中创建表。我已正确指定了所有属性。日志中显示了所有sql语句,但数据库中仍然没有表。有没有人能解决这个问题?我已经搜索了几乎所有与我的问题相关的链接,但都没有找到答案。 这是我的persistence.xml 这就是我在控制台上得到的 16: 35:48881信息[org.hibernate.annotat

  • 例如,有许多可用于java的数据库连接池实现;commons dbcp、commons-dbcp2(更新版本)、Hikari cp、tomcat jdbc连接池和c3p0。Wildfly允许在数据源(独立的*.xml)文件中的连接池中配置应用程序。但是想知道Wildfly是否使用了任何连接池实现?

  • 由于存在安全漏洞,我将log4j版本升级到了2.15.0。但在部署时,我在wildfly服务器中遇到了“空字节数组”错误。 波姆。xml: 错误日志:

  • 野火IM是一套开源通用的即时通讯组件,能够更加容易地赋予客户IM能力,使客户可以快速的在自有产品上添加聊天功能。使用野火可以替代云通讯产品或减少自研IM的工作量。降低客户使用IM的成本和难度。 应用截图 编译 在安装JDK1.8以上及maven的前提下,在命令行中执行 mvn clean compile package ,生成的目标文件在 ./distribution/target/distrib

  • 我想动态地管理Wildfly应用服务器中部署和分解的,这意味着无需重新实例化或重新部署整个包即可更改其内容(主要是文件作为子模块)。(这需要时间,在此期间其他模块不可用) 我试图通过Wildlfy CLI使用可用于部署的命令来实现这一点,例如以下命令: 这些命令有效地删除或添加Wildfly上分解的应用程序中的内容,但是如果不重新部署整个应用程序,它似乎不会被部署。 有没有办法实现这一目标?可行吗