2015-10-26 30 views
5

Ben mevcut olduğunu jackson-veri türü-Joda sürümleri görmek için kontrol aşağıdaki hataJackson-databind sürüm uyuşmazlığı nedeniyle seri hale getirme hataları?

java.lang.NoSuchFieldError: WRITE_DURATIONS_AS_TIMESTAMPS 
    at com.fasterxml.jackson.datatype.joda.ser.DurationSerializer.<init>(DurationSerializer.java:28) 
    at com.fasterxml.jackson.datatype.joda.ser.DurationSerializer.<init>(DurationSerializer.java:25) 
    at com.fasterxml.jackson.datatype.joda.JodaModule.<init>(JodaModule.java:45) 

çalıştırıyorum. Görünüşe göre maven, tüm sürüm uyuşmazlıkları içermedi.

Bu durum, serileştirme hatalarına neden olabilir mi?

cevap

3

Ben bu bağımlılık kullanılan diğer versiyonu geçersiz kılmıştır olarak aşağıdaki bağımlılık kullanılarak giderilir var:

<dependency> 
    <groupId>com.fasterxml.jackson.datatype</groupId> 
    <artifactId>jackson-datatype-joda</artifactId> 
    <version>2.5.3</version> 
</dependency> 
9

sorun maven bağımlılıkları arasında sen jackson-veri türü-Joda ve jackson-databind uyumsuz sürümlerini gerekir (zihnin bir geçişli biri olabileceği anlamına) olmasıdır. anlamda Uyumsuz jackson-databind 'ın SerializationFeature sınıf eksik alanını WRITE_DURATIONS_AS_TIMESTAMPS söyledi. maven Eğer terminalde aşağıdaki komutu çalıştırabilirsiniz ne getiriyor bağımlılıkları görmek için (veya maven bağımlılık ağacını arama ve analiz etmek için bir IDE maven fişini kullanabilirsiniz):

mvn dependency:tree | grep databind 

sonuç büyük olasılıkla böyle bir şey olacak:

[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.4.1:compile 

elbette versiyonu değişebilir ama önemli olan alanını WRITE_DURATIONS_AS_TIMESTAMPS olmasıdır sürümü beri yalnızca 2,5

Böyle bir geçişli bağımlılık hariç tutabilirsiniz:

<dependency> 
    <groupId>group.id</groupId> 
    <artifactId>artifact-id</artifactId> 
    <version>${artifact.version}</version> 
    <exclusions> 
    <exclusion> 
     <groupId>com.fasterxml.jackson.core</groupId> 
     <artifactId>jackson-databind</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 

Eğer jackson-databind sürümünü güncellemeniz gerekir bir geçişli bağımlılık değilse.

0

aynı hata vardı. Tüm jackson * 2.7.0 kütüphanelerini WEB-INF/lib/altına dahil etmiştim ve hala bu hatayı alıyordum. Ben wildfly 8.2 kullanıyorum ve modüller altında jackson 2.4.1 kütüphaneleri vardı ve bir şekilde bu yerden 2.4.1 kavanoz yüklüyordu. Bu yüzden, sorunu gideren bunları 2.7.0'a yükseltmem gerekti. Dağıtım konfigürasyon dosyasında jackson kavanozları yüklemekten bahsetmemiş olsaydım, wildfly kavanozlarını yüklemezdi. Sanırım yanılıyordum.