0

I have a problem with dependencies in my project running on WildFly. In pom.xml I have following definition of Jackson library dependency:

<dependencyManagement>
// ....
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.10.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.datatype</groupId>
            <artifactId>jackson-datatype-jsr310</artifactId>
            <version>2.10.2</version>
        </dependency>
// ...
</dependencyManagement>

But on runtime is used version 2.1.4. I see it also in IntelliJ, which is informing me that this version is "ommited for conflict with 2.1.4"

Version 2.1.4 is included in WildFly, but I want to use version 2.10.2. How to force usage of this version library?

Update:

My dependency tree:

    --- maven-dependency-plugin:2.8:tree (default-cli) @ myapp-ear ---
    pl.net.me.myapp:myapp-ear:ear:1.0-SNAPSHOT
    +- pl.net.me.myapp:myapp-ejb:ejb:1.0-SNAPSHOT:compile
    |  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
    |  |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
    |  +- org.apache.httpcomponents:httpclient:jar:4.5:compile
    |  |  +- org.apache.httpcomponents:httpcore:jar:4.4.1:compile
    |  |  \- commons-logging:commons-logging:jar:1.2:compile
    |  +- commons-fileupload:commons-fileupload:jar:1.2.2:compile
    |  +- commons-lang:commons-lang:jar:2.6:compile
    |  +- commons-codec:commons-codec:jar:1.4:compile
    |  +- org.jasig.cas.client:cas-client-core:jar:3.2.1:compile
    |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.2.Final:compile
    |  +- org.drools:drools-core:jar:5.4.0.Final:compile
    |  |  +- org.mvel:mvel2:jar:2.1.0.drools16:compile
    |  |  \- org.drools:knowledge-api:jar:5.4.0.Final:compile
    |  +- net.sf.jasperreports:jasperreports:jar:6.0.3:compile
    |  |  +- commons-beanutils:commons-beanutils:jar:1.8.3:compile
    |  |  +- commons-collections:commons-collections:jar:3.2.1:compile
    |  |  +- commons-digester:commons-digester:jar:2.1:compile
    |  |  +- com.itextpdf:itextpdf:jar:5.5.0:compile
    |  |  +- com.itextpdf:itext-pdfa:jar:5.5.0:compile
    |  |  +- jfree:jcommon:jar:1.0.15:compile
    |  |  +- jfree:jfreechart:jar:1.0.12:compile
    |  |  +- xml-apis:xml-apis:jar:1.3.02:compile
    |  |  +- org.eclipse.jdt.core.compiler:ecj:jar:4.3.1:compile
    |  |  +- org.codehaus.castor:castor-xml:jar:1.3.3:compile
    |  |  |  +- org.codehaus.castor:castor-core:jar:1.3.3:compile
    |  |  |  +- javax.inject:javax.inject:jar:1:compile
    |  |  |  +- stax:stax:jar:1.2.0:compile
    |  |  |  |  \- stax:stax-api:jar:1.0.1:compile
    |  |  |  +- javax.xml.stream:stax-api:jar:1.0-2:compile
    |  |  |  \- org.springframework:spring-context:jar:4.1.4.RELEASE:compile
    |  |  |     +- org.springframework:spring-aop:jar:4.1.4.RELEASE:compile
    |  |  |     |  \- aopalliance:aopalliance:jar:1.0:compile
    |  |  |     +- org.springframework:spring-beans:jar:4.1.4.RELEASE:compile
    |  |  |     +- org.springframework:spring-core:jar:4.1.4.RELEASE:compile
    |  |  |     \- org.springframework:spring-expression:jar:4.1.4.RELEASE:compile
    |  |  +- com.fasterxml.jackson.core:jackson-core:jar:2.1.4:compile
    |  |  +- com.fasterxml.jackson.core:jackson-annotations:jar:2.1.4:compile
    |  |  +- org.apache.lucene:lucene-core:jar:4.5.1:compile
    |  |  +- org.apache.lucene:lucene-analyzers-common:jar:4.5.1:compile
    |  |  +- org.apache.lucene:lucene-queryparser:jar:4.5.1:compile
    |  |  |  +- org.apache.lucene:lucene-queries:jar:4.5.1:compile
    |  |  |  \- org.apache.lucene:lucene-sandbox:jar:4.5.1:compile
    |  |  |     \- jakarta-regexp:jakarta-regexp:jar:1.4:compile
    |  |  \- org.olap4j:olap4j:jar:0.9.7.309-JS-3:compile
    |  +- org.codehaus.groovy:groovy-all:jar:2.4.0:compile
    |  +- org.apache.sanselan:sanselan:jar:0.97-incubator:compile
    |  +- org.jbpm:jbpm-bpmn2:jar:5.4.0.Final:compile
    |  |  +- org.jbpm:jbpm-flow-builder:jar:5.4.0.Final:compile
    |  |  |  \- org.jbpm:jbpm-flow:jar:5.4.0.Final:compile
    |  |  \- org.slf4j:slf4j-api:jar:1.6.4:compile
    |  +- org.drools:drools-compiler:jar:5.4.0.Final:compile
    |  |  +- org.antlr:antlr-runtime:jar:3.3:compile
    |  |  +- org.antlr:antlr:jar:3.3:compile
    |  |  \- org.antlr:stringtemplate:jar:3.2.1:compile
    |  +- org.drools:drools-clips:jar:5.4.0.Final:compile
    |  +- org.drools:drools-decisiontables:jar:5.4.0.Final:compile
    |  |  \- net.sourceforge.jexcelapi:jxl:jar:2.6.10:compile
    |  +- org.drools:drools-jsr94:jar:5.4.0.Final:compile
    |  |  \- jsr94:jsr94:jar:1.1:compile
    |  +- org.drools:drools-persistence-jpa:jar:5.4.0.Final:compile
    |  |  +- org.hibernate.javax.persistence:hibernate-jpa-2.0-api:jar:1.0.1.Final:compile
    |  |  +- com.google.protobuf:protobuf-java:jar:2.4.1:compile
    |  |  +- dom4j:dom4j:jar:1.6.1:compile
    |  |  +- org.javassist:javassist:jar:3.14.0-GA:compile
    |  |  \- javax.transaction:jta:jar:1.1:compile
    |  +- org.drools:drools-templates:jar:5.4.0.Final:compile
    |  +- org.drools:drools-verifier:jar:5.4.0.Final:compile
    |  |  +- com.google.guava:guava:jar:r06:compile
    |  |  +- com.thoughtworks.xstream:xstream:jar:1.4.1:compile
    |  |  |  +- xmlpull:xmlpull:jar:1.1.3.1:compile
    |  |  |  \- xpp3:xpp3_min:jar:1.1.4c:compile
    |  |  \- com.lowagie:itext:jar:2.1.2:compile
    |  |     +- bouncycastle:bcmail-jdk14:jar:138:compile
    |  |     \- bouncycastle:bcprov-jdk14:jar:138:compile
    |  +- org.drools:knowledge-internal-api:jar:5.4.0.Final:compile
    |  +- commons-io:commons-io:jar:2.1:compile
    |  +- pl.net.me.myapp:mka-commons-jar:jar:1.0-SNAPSHOT:compile
    |  |  +- log4j:log4j:jar:1.2.17:compile
    |  |  +- com.google.zxing:core:jar:3.1.0:compile
    |  |  +- com.google.zxing:javase:jar:3.1.0:compile
    |  |  \- org.projectlombok:lombok:jar:1.18.10:compile
    |  +- pl.net.me.myapp:myapp-cdm:jar:1.0-SNAPSHOT:compile
    |  +- pl.net.me.myapp:myapp-database:jar:1.0-SNAPSHOT:compile
    |  +- net.sf.jasperreports:jasperreports-fonts:jar:6.0.0:compile
    |  +- com.fasterxml.jackson.core:jackson-databind:jar:2.10.2:compile
    |  \- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.10.2:import
    +- pl.net.me.myapp:myapp-web:war:1.0-SNAPSHOT:compile
    +- pl.net.me.myapp:iapp-web:war:1.0-SNAPSHOT:compile
    +- pl.net.me.myapp:sop-web:war:1.0-SNAPSHOT:compile
    \- pl.net.me.myapp:my-maps:war:1.0-SNAPSHOT:compile
Olek
  • 319
  • 8
  • 24

1 Answers1

0

I found a solution. On WildFly 18.0.1 is everything working fine, because it contains version 2.9.10.1 of Jackson library. Problem is on WildFly 8.2.1, because it contains version 2.1.4. Version of Jackson library which is used on runtime is version provided by WildFly.

Referring to this question: Wildfly 9 - How do I exclude Jackson I added file jboss-deployment-structure.xml to my META-INF directory with following contant:

    <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.core.jackson-annotations" />
                <module name="com.fasterxml.jackson.jaxrs.jackson-jaxrs-json-provider" />
                <module name="org.jboss.resteasy.resteasy-jackson2-provider" />
            </exclusions>
        </deployment>
    </jboss-deployment-structure>

Unfortunatly it works only on WildFly 18.0.1, WildFly 8.2.1 doesn't start because of other dependency problems, so the most reasonable solution in this situation is to upgrade WildFly or remove jackson-datatype-jsr310 from pom.xml

Olek
  • 319
  • 8
  • 24