Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

2.3K
Visualizações
Spring boot Log4j2 versión 2.15.0 EMPTY_BYTE_ARRAY error en el servidor wildfly

Actualicé la versión de log4j a 2.15.0 debido a una vulnerabilidad de seguridad. pero al implementar, aparece el error "EMPTY_BYTE_ARRAY" en el servidor wildfly.

Pom.xml:

 <properties> <java.version>1.8</java.version> <log4j2.version>2.16.0</log4j2.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-rest</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-security</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </exclusion> </exclusions> </dependency> <!-- Add Log4j2 Dependency --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>${log4j2.version}</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>${log4j2.version}</version> </dependency> <!-- Add Log4j2 Async Dependency --> <dependency> <groupId>axis</groupId> <artifactId>axis</artifactId> <version>1.4</version> <scope>compile</scope> </dependency> <dependency> <groupId>axis</groupId> <artifactId>axis-wsdl4j</artifactId> <version>1.5.1</version> <scope>compile</scope> </dependency> <dependency> <groupId>javax.mail</groupId> <artifactId>mail</artifactId> <version>1.4.7</version> </dependency> <dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt</artifactId> <version>0.9.0</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <scope>provided</scope> </dependency> <dependency> <groupId>org.glassfish</groupId> <artifactId>javax.json</artifactId> <version>1.0-b04</version> </dependency> <dependency> <groupId>javax.xml.rpc</groupId> <artifactId>javax.xml.rpc-api</artifactId> <version>1.1.1</version> </dependency> <dependency> <groupId>wsdl4j</groupId> <artifactId>wsdl4j</artifactId> </dependency> <dependency> <groupId>org.modelmapper</groupId> <artifactId>modelmapper</artifactId> <version>2.3.2</version> </dependency> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.12.0</version> </dependency> <dependency> <groupId>commons-dbcp</groupId> <artifactId>commons-dbcp</artifactId> <version>1.4</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.6.1</version> </dependency> <dependency> <groupId>com.microsoft.sqlserver</groupId> <artifactId>mssql-jdbc</artifactId> </dependency> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-core</artifactId> </dependency> <dependency> <groupId>com.lmax</groupId> <artifactId>disruptor</artifactId> <version>3.4.2</version> </dependency> <dependency> <groupId>commons-validator</groupId> <artifactId>commons-validator</artifactId> <version>1.7</version> </dependency> <dependency> <groupId>com.google.code.gson</groupId> <artifactId>gson</artifactId> <version>2.8.6</version> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-mail</artifactId> </dependency> <dependency> <groupId>org.codehaus.jackson</groupId> <artifactId>jackson-mapper-asl</artifactId> <version>1.9.11</version> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>

Registro de errores:

2021-12-14 15:45:52,957 ERROR [org.jboss.msc.service.fail] (Grupo de subprocesos de ServerService -- 95) MSC000001: Error al iniciar el servicio jboss.deployment.unit."lojistikteminatlitasimacilik-0.0.1-SNAPSHOT .war".undertow-implementación: org.jboss.msc.service.StartException en el servicio jboss.deployment.unit."lojistikteminatlitasimacilik-0.0.1-SNAPSHOT.war".undertow-implementación: java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:81)
        en java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        en java.util.concurrent.FutureTask.run(FutureTask.java:266)
        en org.jboss.threads.ContextClassLoaderSavingRunnable.run(ContextClassLoaderSavingRunnable.java:35)
        en org.jboss.threads.EnhancedQueueExecutor.safeRun(EnhancedQueueExecutor.java:1990)
        en org.jboss.threads.EnhancedQueueExecutor$ThreadBody.doRunTask(EnhancedQueueExecutor.java:1486)
        en org.jboss.threads.EnhancedQueueExecutor$ThreadBody.run(EnhancedQueueExecutor.java:1377)
        en java.lang.Thread.run(Thread.java:748)
        en org.jboss.threads.JBossThread.run(JBossThread.java:513)
Causado por: java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY
        en org.apache.logging.log4j.core.config.ConfigurationSource.(ConfigurationSource.java:56)
        en org.apache.logging.log4j.core.config.NullConfiguration.(NullConfiguration.java:32)
        en org.apache.logging.log4j.core.LoggerContext.(LoggerContext.java:85)
        en org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.createContext(ClassLoaderContextSelector.java:254)
        en org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.locateContext(ClassLoaderContextSelector.java:218)
        en org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:140)
        en org.apache.logging.log4j.core.selector.ClassLoaderContextSelector.getContext(ClassLoaderContextSelector.java:123)
        en org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:230)
        en org.apache.logging.log4j.core.impl.Log4jContextFactory.getContext(Log4jContextFactory.java:47)
        en org.apache.logging.log4j.LogManager.getContext(LogManager.java:174)
        en org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.getLoggerContext(Log4J2LoggingSystem.java:264)
        en org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.beforeInitialize(Log4J2LoggingSystem.java:131)
        en org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationStartingEvent(LoggingApplicationListener.java:220)
        en org.springframework.boot.context.logging.LoggingApplicationListener.onApplicationEvent(LoggingApplicationListener.java:199)
        en org.springframework.context.event.SimpleApplicationEventMulticaster.doInvokeListener(SimpleApplicationEventMulticaster.java:172)
        en org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:165)
        en org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139)
        en org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:127)
        en org.springframework.boot.context.event.EventPublishingRunListener.starting(EventPublishingRunListener.java:69)
        en org.springframework.boot.SpringApplicationRunListeners.starting(SpringApplicationRunListeners.java:48)
        en org.springframework.boot.SpringApplication.run(SpringApplication.java:302)
        en org.springframework.boot.web.servlet.support.SpringBootServletInitializer.run(SpringBootServletInitializer.java:157)
        en org.springframework.boot.web.servlet.support.SpringBootServletInitializer.createRootApplicationContext(SpringBootServletInitializer.java:137)
        en org.springframework.boot.web.servlet.support.SpringBootServletInitializer.onStartup(SpringBootServletInitializer.java:91)
        en org.springframework.web.SpringServletContainerInitializer.onStartup(SpringServletContainerInitializer.java:171)
        en io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:204)
        en io.undertow.servlet.core.DeploymentManagerImpl$1.call(DeploymentManagerImpl.java:187)
        en io.undertow.servlet.core.ServletRequestContextThreadSetupAction$1.call(ServletRequestContextThreadSetupAction.java:42)
        en io.undertow.servlet.core.ContextClassLoaderSetupAction$1.call(ContextClassLoaderSetupAction.java:43)
        en org.wildfly.extension.undertow.security.SecurityContextThreadSetupAction.lambda$create$0(SecurityContextThreadSetupAction.java:105)
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentInfoService$UndertowThreadSetupAction.lambda$create$0(UndertowDeploymentInfoService.java:1530)
        en io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:255)
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:96)
        en org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:78)
        ... 8 más
2021-12-14 15:45:52,967 ERROR [org.jboss.as.controller.management-operation] (Subprocesos de solicitud de administración externa - 3) WFLYCTL0013: Operación ("agregar") falló - dirección: ([("implementación " => "lojistikteminatlitasimacilik-0.0.1-SNAPSHOT.war")]) - descripción de la falla: {"WFLYCTL0080: Servicios fallidos" => {"jboss.deployment.unit.\"lojistikteminatlitasimacilik-0.0.1-SNAPSHOT.war\ ".undertow-deployment" => "java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY
    Causado por: java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY"}}
2021-12-14 15:45:52,968 ERROR [org.jboss.as.server] (Subprocesos de solicitud de administración externa -- 3) WFLYSRV0021: La implementación de la implementación "lojistikteminatlitasimacilik-0.0.1-SNAPSHOT.war" se revirtió con el siguiente mensaje de error:
{"WFLYCTL0080: Servicios fallidos" => {"jboss.deployment.unit.\"lojistikteminatlitasimacilik-0.0.1-SNAPSHOT.war\".undertow-deployment" => "java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY
    Causado por: java.lang.NoSuchFieldError: EMPTY_BYTE_ARRAY"}}
over 4 years ago · Santiago Trujillo
9 Respostas
Responde à pergunta

0

Pude solucionar (no arreglar) cambiando a JSONLayout en lugar de PatternLayout. PatternLayout no parece funcionar en algunos casos, incluso con su constructor predeterminado... aún no he descubierto por qué.

over 4 years ago · Santiago Trujillo Relatório

0

Así que tuve este problema esta mañana al actualizar log4j a la versión 2.15.0. El problema que encontré fue que una dependencia experta estaba incorporando una versión anterior de log4j (2.14.1 en mi caso) que devolvería la constante de error "EMPTY_BYTE_ARRAY". En 2.15.0, EMPTY_BYTE_ARRAY no existe y da este error.

Sugeriría mirar su árbol de dependencia maven y ver si se está extrayendo una versión anterior de log4j-api, log4j-core u otra biblioteca de log4j que no sea la versión que está usando, que parece ser 2.16.0 .

Hice esto a través de Eclipse estableciendo mi objetivo experto en "dependencia: árbol".

over 4 years ago · Santiago Trujillo Relatório

0

Encontré un problema similar.

En mi caso, necesitaba reemplazar spring-boot-starter-log4j2 con log4j-xxx. Al principio, solo agregué log4j-slf4j-impl, log4j-core, log4j-jul y jul-to-slf4j. Después de comparar el árbol de dependencias, también agregué log4j-api y el problema desapareció.

Así que le sugiero que compare el árbol de dependencias para ver si faltan algunas dependencias.

over 4 years ago · Santiago Trujillo Relatório

0

Wildfly usa el artefacto log4j-api (probablemente una versión anterior a la 2.16.0) y la discrepancia de versión entre log4j-api y log4j-core causará problemas. documentación sobre cómo incorporar log4j-core en su aplicación

Para obtener más información, consulte: https://www.wildfly.org/news/2021/12/13/Log4j-CVE/

over 4 years ago · Santiago Trujillo Relatório

0

Debe actualizar log4j api en wildfly a 2.15.0 o 2.16.0 (actualmente más reciente). Copie el nuevo jar api de log4j en \wildfly\modules\system\layers\base\org\apache\logging\log4j\api\main
y actualizar module.xml

También puede excluir log4j de wildfly usando el archivo jboss-deployment-structure, pero de todos modos es mejor tener una versión fija de log4j en wildfly

over 4 years ago · Santiago Trujillo Relatório

0

si no puede usar 2.15.0 o 2.16.0, intente 2.12.2 y corrija también la vulnerabilidad de seguridad. Aquí, el sitio log4j: https://logging.apache.org/log4j/2.x/

Mitigación

En la versión 2.12.2 Log4j deshabilita el acceso a JNDI por defecto. El uso de JNDI en la configuración ahora debe habilitarse explícitamente. Las llamadas a JndiLookup ahora devolverán una cadena constante. Además, Log4j ahora limita los protocolos de forma predeterminada solo a Java. La función de búsqueda de mensajes se ha eliminado por completo.

En la versión 2.16.0 Log4j deshabilita el acceso a JNDI por defecto. Las búsquedas JNDI en la configuración ahora deben habilitarse explícitamente. Además, Log4j ahora limita los protocolos de forma predeterminada a solo java, ldap y ldaps y limita los protocolos ldap a solo acceder a objetos primitivos de Java. Los hosts que no sean el host local deben estar explícitamente permitidos. La función de búsqueda de mensajes se ha eliminado por completo.

over 4 years ago · Santiago Trujillo Relatório

0

Tuve que hacer dos cosas para que funcionara:

  1. Si aún no lo tiene, cree src/main/webapp/WEB-INF/jboss-deployment-structure.xml. En su interior agregar

     <jboss-deployment-structure> <deployment> <exclusions> <module name="org.apache.logging.log4j.api"/> </exclusions> </deployment> </jboss-deployment-structure>
  2. En mi caso, el archivo war todavía tenía tanto la versión 2.11.0 como la nueva 2.16.0 dentro de WEB-INF/lib. Abrí la guerra y eliminé las versiones 2.11.0.

over 4 years ago · Santiago Trujillo Relatório

0

Por alguna razón, en mi caso hubo una discrepancia en las versiones de log4j-api y log4j-core. Entonces, tuve que excluirlo manualmente de pom. Ahora está funcionando como se esperaba.

 <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.17.1</version> <exclusions> <exclusion> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.17.1</version> </dependency>
over 4 years ago · Santiago Trujillo Relatório

0

Después de agregar log4j2.version en pom.xml, ej.

<propiedades> .. <log4j2.versión>2.17.1</log4j2.versión> </propiedades>

necesitamos limpiar y compilar los archivos existentes. Con Maven corriendo

mvn instalación limpia

Al realizar este paso, tendremos todos los últimos archivos compilados y evitaremos encontrarnos con el error.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda