解决elasticsearch的jackson包与jboss(wildfly)中的jackson包冲突问题

一般java web项目第一次在jboss上发布的时候会遇到elasticsearch的jackson包和jboss的jackson包因为版本冲突,导致发布失败。

我当时的报错信息大概是这样的

ERROR [io.undertow.request] (default task-5) UT005023: Exception handling request to /cmall-admin-web/order/queryForPage.htm: org.springframework.web.util.NestedServletException: Handler processing failed; nested exception is java.lang.NoClassDefFoundError: Could not initialize class org.elasticsearch.common.xcontent.smile.SmileXContent

遇到这种情况,你可以尝试按照下面的方法修改后再发布:

1、首先在web项目中的WEB-INF目录下新建一个jboss-deployment-structure.xml文件

<?xml version="1.0" encoding="UTF-8" ?>
<jboss-deployment-structure>
    <deployment>
        <!-- Exclusions allow you to prevent the server from automatically adding some dependencies -->
        <!-- 主要作用就是将应用的日志输出到自己设定目录,而不是输出到wildfly的server.log里面 -->
        <exclusions>
            <module name="org.slf4j" />
            <module name="org.slf4j.impl" />
            
            <!-- 解决es的jackson包与其他jar包中的jackson冲突问题 -->
            <module name="com.fasterxml"/>
            <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
        </exclusions>
    </deployment>
</jboss-deployment-structure>

 2、在pom.xml中添加jackson-core的jar包

<!-- 解决es的jackson包与其他jar包中的jackson冲突问题 -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.6.6</version>
</dependency>

 

已标记关键词 清除标记
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页