[英]ClassCastingException when redeploy war in wildfly
我總是在重新部署我的網絡應用程序的新版本時遇到錯誤。
我必須取消部署並重新啟動服務器才能使其正常工作。
如果我不重新啟動服務器,我會在部署過程中收到此消息:
org.apache.logging.log4j.core.LoggerContext 不能轉換為 org.apache.logging.log4j.core.LoggerContext
我將 Springboot 應用程序作為后端運行,Angular 作為前端運行。
這是我的 Maven 依賴項:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>2.4.4</version>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
<exclusion>
<groupId>log4j</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>*</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-websocket</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot</artifactId>
<version>2.4.4</version>
</dependency>
我認為你應該排除org.apache.logging.log4j :
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>*</artifactId>
</exclusion>
因為 log4j:log4j 是舊名稱
發生這種情況是因為 WildFly 上已經存在(隱式)log4j API 依賴項。 幸運的是,您可以將 WildFly 配置為不添加它們。
從 WildFly 控制台:配置 -> 子系統 -> 日志配置
將“添加日志記錄 Api 依賴項”更改為false
或者,在 standalone.xml 上:
<subsystem xmlns="urn:jboss:domain:logging:8.0">
<add-logging-api-dependencies value="false"/>
PS 這為我修復了與您相同的堆棧
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.