Мы обновили Камунду с 7.7 до 7.9, и в рамках обновления версия Джексона также обновилась до 2.9.5. из 2.6.3. Рабочие процессы, созданные с использованием 7.7, не прошли проверку 7.9. Когда ниже выполняется с привязкой данных Джексона 2.6.3, он становится LazyMap и может сериализоваться. но то же самое не работает с Jackson 2.9.5 и выдает ошибку «Невозможно создать привязки типов для класса groovy.json.internal.LazyMap с 2 параметрами типа: класс ожидает 0»
def hotLazyMap = new JsonSlurper().parseText('{ "List": [4, 8, 15, 16, 23, 42] }')
println hotLazyMap instanceof Map ; //true
println hotLazyMap instanceof LazyMap; //true
println hotLazyMap instanceof HashMap; //false
if (hotLazyMap.getClass() == Map.class)
println "hotLazyMap is Map class";
else if (hotLazyMap.getClass() == LazyMap.class)
println "hotLazyMap is LazyMap class" //prints this
else if (hotLazyMap.getClass() == HashMap.class)
println "hotLazyMap is HashMap class"
else
println "hotLazyMap is Not in Map"
println ("LazyMap.class.getTypeParameters().length: " + LazyMap.class.getTypeParameters().length) ; //0
println ("Map.class.getTypeParameters().length: " + Map.class.getTypeParameters().length); //2
Единственный способ - понизить рейтингДжексон до 2.6.3? Можно использовать JsonSluperClassic, но, будучи приложением, мы стараемся поддерживать обратную совместимость, поскольку рабочие процессы (разработанные другими командами) должны работать в нашей среде.
Я вижу, что это проблема совместимости, Любые способычтобы исправить это?