2016-05-05 4 views
4

Ich stoße auf ein Jackson-Serialisierungsproblem mit Nullwerten in Karten. Offensichtlich ist dies ein bekannter Bug in der von Wildfly 9 verwendeten Jackson-Version (https://issues.jboss.org/browse/WFLY-4906). Ich würde gerne die aktuelle Version von Jackson verwenden; Ich habe jedoch Probleme, die von Wildfly verwendete Version auszuschließen. Ich habe versucht, das Modul in jboss-deployment-strucutre.xml auszuschließen, aber der Ausschluss funktioniert nicht.Wildfly 9 - Wie schließe ich Jackson aus?

jboss-deployment-structure.xml

Jede Idee, wie ich diese Arbeit bekommen?

Antwort

10

Ich bin gerade in dieses Problem selbst gerannt.

Nach einer Bibliothek in meiner Anwendung aktualisieren, erhielt ich die folgende Fehlermeldung auf einem Anfrage:

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

Hier ist, wie ich es gelöst:

ich natürlich jackson-core-2.5.1 ausschließen mussten, dass wildfly- 9 bietet.

aufgelistet ich alle Module, die mit /opt/wildfly/modules# grep -R 'jackson-core' auf 'Jackson-core' hängen

Dann habe ich einen jboss-deployment-structure.xml in meinem WEB-INF Ordner:

<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> 
+1

Dank. Ich habe es auf die gleiche Weise gelöst und vergessen, das Ticket zu aktualisieren. – user3029642

+1

Sie lösen mein ganzes Leben. Ernst. Du hast es gelöst. Vielen Dank! – Tirias

+0

100x danke dafür. Schon Albträume. – Mejmo

3

Ich hatte ähnliches Problem. Ich musste ganze JAX-RS-

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

danach Subsytem ausschließen konnte ich meine Version von Jackson verwenden.