I have a complicated project, which has many dependencies on jackson-databind.
It was working well on Jersey 2.19.1
Recently I decided to upgrade Jersey to 2.40. Before to do this, I tried it in a small similar project, and it works well.
Then I updated on my main complicated project, and it complains ClassNotFoundException: com.fasterxml.jackson.databind.AnnotationIntrospector$XmlExtensions
when the system is started.
I tried many days to figure out this issue and finally found the IDE found two versions of jackson-databind which AnnotationIntrospector stays in. One comes from Jersey, which is expected. But another one comes from logstash-logback-encoder, which is unexpected.
Based on maven's rules, any conflict versions will be figured out to a final version. I knew those maven rules and how to use those rules.
But I didn't expect IDE will find another version. I ran this system in command line and had the same issue. So, it is not an IDE issue.
After I updated logstash-logback-encoder version to match final Jackson-databind version, the issue disappears.
My question is: what is the root cause of this issue?