Jackson blackbird module 2.15.2 always throws error at runtime for Java 17 and dropwizard

246 views Asked by At

I am running jackson blackbird module in my project with java 17 and recently updated dropwizard from 2.0.x to 4.0.1

I also added this in my gradle run step

doFirst {
        // Add the --add-opens option to the JVM arguments
        jvmArgs += '--add-opens=java.base/javax.security.auth.x500=ALL-UNNAMED'
        jvmArgs += '--add-opens=java.base/javax.crypto=ALL-UNNAMED'
    }

When running the project, i get this error

java.lang.InternalError: java.lang.NoClassDefFoundError: com/fasterxml/jackson/module/blackbird/ser/ToBooleanFunction
    at java.base/java.lang.invoke.InnerClassLambdaMetafactory.generateInnerClass(InnerClassLambdaMetafactory.java:413)
    at java.base/java.lang.invoke.InnerClassLambdaMetafactory.spinInnerClass(InnerClassLambdaMetafactory.java:315)
    at java.base/java.lang.invoke.InnerClassLambdaMetafactory.buildCallSite(InnerClassLambdaMetafactory.java:228)
    at java.base/java.lang.invoke.LambdaMetafactory.metafactory(LambdaMetafactory.java:341)
    at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.createProperty(BBSerializerModifier.java:133)
    at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.lambda$findProperties$0(BBSerializerModifier.java:67)
    at com.fasterxml.jackson.module.blackbird.util.Unchecked.lambda$runnable$0(Unchecked.java:31)
    at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.findProperties(BBSerializerModifier.java:68)
    at com.fasterxml.jackson.module.blackbird.ser.BBSerializerModifier.changeProperties(BBSerializerModifier.java:52)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.constructBeanOrAddOnSerializer(BeanSerializerFactory.java:415)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.findBeanOrAddOnSerializer(BeanSerializerFactory.java:295)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory._createSerializer2(BeanSerializerFactory.java:240)
    at com.fasterxml.jackson.databind.ser.BeanSerializerFactory.createSerializer(BeanSerializerFactory.java:174)
    at com.fasterxml.jackson.databind.SerializerProvider._createUntypedSerializer(SerializerProvider.java:1503)
    at com.fasterxml.jackson.databind.SerializerProvider._createAndCacheUntypedSerializer(SerializerProvider.java:1471)
    at com.fasterxml.jackson.databind.SerializerProvider.findValueSerializer(SerializerProvider.java:597)

I am confused as to why this is happening and how to fix it

I was able to make it work by overwriting blackbird using afterburner, but i don't want that, i would prefer to use blackbird

0

There are 0 answers