【问题标题】:JBoss - App deployment ignoring fasterxml exclusionsJBoss - 忽略 fastxml 排除的应用程序部署
【发布时间】:2022-01-21 19:55:55
【问题描述】:

我有一个应用程序部署到 JBoss 7.2 实例,该实例明确使用定义的 fasterxml.jackson 库:'com.fasterxml.jackson.core:jackson-databind:2.12.6' 但是在运行时,我收到不同版本的 jackson 错误:2.9.10.4-redhat-00001。作为 JBoss 模块加载的那个。

如何完全排除此应用程序的使用?我已经执行了以下操作,但似乎都没有工作:

  1. 排除所有其他 jackson 库从 maven 中下拉。
  2. 在构建过程中将正确的 jackson 库强制放入 WAR/lib 文件夹。
  3. jboss-deployment-structure.xml 中将所有jackson 库调用为<exclusion></exclusion>
  4. 我什至将应用程序转换为使用jackson codehaus,但jackson:2.9.10.4-redhat-00001 的错误仍然存​​在。

错误

Caused by: com.fasterxml.jackson.databind.exc.InvalidDefinitionException: Cannot construct instance of `java.time.ZonedDateTime` (no Creators, like default construct, exist): no String-argument constructor/factory method to deserialize from String value ('2022-01-21T19:00:00Z')  at [Source: (org.jboss.resteasy.client.core.BaseClientResponse$InputStreamWrapper); line: 1, column: 12] (through reference chain: com.app.domainobjects.proxy.Object["body"])
    at com.fasterxml.jackson.core.jackson-databind@2.9.10.4-redhat-00001//com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:67)

jboss-deployment-structure.xml

<?xml version="1.0"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
    <deployment>
        <dependencies>
            <module name="org.picketbox"/>
            <module name="org.wildfly.clustering.singleton"/>
            <module name="org.jboss.as.server"/>
            <module name="org.jboss.msc"/>
        </dependencies>
         <exclusions>
            <module name="com.fasterxml.classmate" />
            <module name="com.fasterxml.jackson.core.jackson-core" />
            <module name="com.fasterxml.jackson.core.jackson-annotations" />
            <module name="com.fasterxml.jackson.core.jackson-databind" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" />
            <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson-provider" />
        </exclusions>
    </deployment>

    <sub-deployment name="app.war">
         <exclusions>
            <module name="com.fasterxml.classmate" />
            <module name="com.fasterxml.jackson.core.jackson-core" />
            <module name="com.fasterxml.jackson.core.jackson-annotations" />
            <module name="com.fasterxml.jackson.core.jackson-databind" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jdk8" />
            <module name="com.fasterxml.jackson.datatype.jackson-datatype-jsr310" />
            <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            <module name="org.jboss.resteasy.resteasy-jackson-provider" />
        </exclusions>
    </sub-deployment>

</jboss-deployment-structure>

【问题讨论】:

    标签: java jackson jboss jboss7.x jackson-databind


    【解决方案1】:

    尝试通过jboss-deployment-structure.xml排除jackson默认实现:

    <jboss-deployment-structure>
        <deployment>
            <exclusions>
                <module name="com.fasterxml.jackson.core.jackson-core" />
                <module name="com.fasterxml.jackson.core.jackson-databind" />
                <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
                <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            </exclusions>
        </deployment>
    </jboss-deployment-structure> 
    

    【讨论】:

      猜你喜欢
      • 2018-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      • 2020-12-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多