2014-05-18 5 views
8

erhalten Wir verwenden Dropwizard Version 0.6.3. Wenn wir versuchen, Version 0.7.0 zu aktualisieren, erhalten wir diesen Fehler beim Dienststart. .Fehler in Jackson-Bibliothekscode

Exception in thread "main" java.lang.VerifyError: class com.fasterxml.jackson.module.afterburner.deser.SuperSonicBeanDeserializer überschreibt letzte Methode deserialize (Lcom/fasterxml/Jackson/core/JsonParser; Lcom/fasterxml/jackson/databind/DeserializationContext;) Ljava/lang/Objekt;

Versuchte Suche, keine Lösung erhalten. Als ich in die SuperSonicBeanDeserializer-Klasse geschaut habe, hat sie eine Override-Methode. Aber die Klasse SuperSonicBeanDeserializer ist endgültig. Ich bin mir nicht sicher, wie ich dieses Problem lösen kann. Jede Lösung/Vorschlag, wird uns viel helfen.

+0

Höchstwahrscheinlich haben Sie zwei Versionen der Jackson-Bibliothek in Ihrem Klassenpfad. Wie erstellen Sie Ihre Anwendung? –

+0

Danke. Als Teil einer Abhängigkeitsmudule, verschiedene Jackson-Version auch enthalten .. – Manikandan

+0

Kannst du die verschiedenen Jackson-Version loswerden? Ansonsten kann dies zu allen möglichen Problemen führen. Ich empfehle Ihnen, sich an die neueste Version von Jackson zu halten, die mit Dropwizard geliefert wird. –

Antwort

10

Ein Blick auf dem Maven Abhängigkeitsbaum sollte finden helfen, wo das Problem ist:

mvn dependency:tree -Dverbose

Schauen Sie innerhalb der Ergebnisse „für den Konflikt ausgelassen“. Sie haben wahrscheinlich eine Version von Jackson-Databind älter als 2.3.0, die die Version in Dropwizard 0.7 überschreibt.

+0

Dies löste das Problem für mich und war in der Lage, es auf zwei verschiedene Arten zu beheben. Man spezifiziert jackson-databind als eine Abhängigkeit und setzt die Version auf 2.3.x, oder Zwei setzen einen Ausschluß auf die Abhängigkeit, die die alte Version von jackson einbrachte. – bramp

+2

Sie können auch verwenden: 'mvn Abhängigkeit: Baum -Dverbose -Dincludes =: jackson-databind ::', um eine genauere Information über die Pfade zu dieser Abhängigkeit zu erhalten –