问题
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.
Any idea how I can get this to work?
回答1:
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>
回答2:
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.
来源:https://stackoverflow.com/questions/37060294/wildfly-9-how-do-i-exclude-jackson