Wildfly 9 - How do I exclude Jackson
Asked Answered
W

2

10

I'm running into a Jackson serialization issue with null values in maps. Apparently this is a known bug in the Jackson version used by Wildfly 9 (https://issues.jboss.org/browse/WFLY-4906). I'd like to use the current version of Jackson; however, I'm having trouble excluding the version used by Wildfly. I tried excluding the module in jboss-deployment-structure.xml but the exclusion is not working.

jboss-deployment-structure.xml

Any idea how I can get this to work?

Wergild answered 5/5, 2016 at 21:7 Comment(1)
May I know where you found the jboss-deployment-structure.xml?Fruiterer
A
29

I just ran into this issue myself.

After upgrading a library in my application, I received the following error on a request:

Exception handling request to /path: java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonParser.hasToken(Lcom/fasterxml/jackson/core/JsonToken;)

Here is how I solved it:

I obviously had to exclude jackson-core-2.5.1 that wildfly-9 provides.

I listed all modules that depend on 'jackson-core' with /opt/wildfly/modules# grep -R 'jackson-core'

Then I created a jboss-deployment-structure.xml in my WEB-INF folder:

<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>
Aeroneurosis answered 12/12, 2016 at 15:7 Comment(7)
Thanks. I solved it the same way and forgot to update the ticket.Wergild
You solve my entire life. Seriously. You solved it. Thanks!Phototelegraph
It works with Wildfly 10.1.0 Final version - and it save my faith.Olpe
It works with JBoss EAP 7.1.6 - and you saved my day. Now I will always use grep -R '<offending-lib>' in the modules folder, if I run into similar issues. (had some in the past...)Gangrene
Do I need to configure somewhere for my jboss or my server to point to this jboss-deployment-structure.xml ? I try to create a jboss-deployment-structure.xml in my WebContent/WEB-INF/ and put in the same content, restart my server, still no effect.Fruiterer
@PanadolChong I did no such thing.Aeroneurosis
This isn't working for wildfly 21, OpenJDK 11 and Spring boot 2.7 web deployment, jackson jars coming with Springboot. what did i miss?Caras
S
12

I had similar issue. I had to exclude whole jax-rs subsytem

<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">
<deployment>
    <exclude-subsystems>
        <subsystem name="jaxrs" />
    </exclude-subsystems>
    ...
</deployment>

after that I was able to use my version of Jackson.

Senate answered 16/6, 2016 at 12:43 Comment(1)
This extra step was absolutely necessary. The accepted solution did not work on its own without this.Nonagon

© 2022 - 2024 — McMap. All rights reserved.