添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
Collectives™ on Stack Overflow

Find centralized, trusted content and collaborate around the technologies you use most.

Learn more about Collectives

Teams

Q&A for work

Connect and share knowledge within a single location that is structured and easy to search.

Learn more about Teams

Exception in thread "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z

Ask Question

I need to convert json to pojo. I Decided to use jackson and have added jackson-core-2.2.0.jar, jackson-databind-2.4.4.jar and jackson-annotations-2.1.2.jar to my project's classpath

I created following Main class:

import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.core.JsonGenerationException;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonMappingException;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.DeserializationFeature;
public class Json {
private static String SRC= "";
  public static void main(String[] args) {
      AwardList awardList = null;
      ObjectMapper mapper = new ObjectMapper();
          awardList = (AwardList) mapper.readValue(new URL(SRC), AwardList.class);
      }catch (JsonGenerationException e){
          e.printStackTrace();
       } catch (JsonMappingException e){
          e.printStackTrace();
       } catch (IOException e){
          e.printStackTrace();
       System.out.println(awardList);

And following AwardList class:

public class AwardList {
    private Flights[] flights;
    private String[] connections;
    private SaverEconomy saverEconomy;
    private StandartEconomy standartEconomy;
    private SaverBusiness saverBusiness;
    private StandartFirst standartFirst;
    private SaverFirst saverFirst;
    public Flights[] getFlights() {
        return flights;
    public void setFlights(Flights[] flights) {
        this.flights = flights;
    public SaverEconomy getSaverEconomy() {
        return saverEconomy;
    public void setSaverEconomy(SaverEconomy saverEconomy) {
        this.saverEconomy = saverEconomy;
    public StandartEconomy getStandartEconomy() {
        return standartEconomy;
    public void setStandartEconomy(StandartEconomy standartEconomy) {
        this.standartEconomy = standartEconomy;
    public SaverBusiness getSaverBusiness() {
        return saverBusiness;
    public void setSaverBusiness(SaverBusiness saverBusiness) {
        this.saverBusiness = saverBusiness;
    public StandartFirst getStandartFirst() {
        return standartFirst;
    public void setStandartFirst(StandartFirst standartFirst) {
        this.standartFirst = standartFirst;
    public SaverFirst getSaverFirst() {
        return saverFirst;
    public void setSaverFirst(SaverFirst saverFirst) {
        this.saverFirst = saverFirst;
    public String[] getConnections() {
        return connections;
    public void setConnections(String[] connections) {
        this.connections = connections;

I want to convert json to pojo and save it in the database. I keep getting following error:

Exception in thread "main" java.lang.NoSuchMethodError: com.fasterxml.jackson.core.JsonFactory.requiresPropertyOrdering()Z
  at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:457)
  at com.fasterxml.jackson.databind.ObjectMapper.<init>(ObjectMapper.java:379)
  at Json.main(Json.java:72)
                Why you are using different versions of Jackson jars? You have jackson-core, jackson-databind, jackson-annotations but all of them has different versions? As a first step I would recommend to use the same release versions. Just for the info version 2.5 was released today.
– Ilya Ovesnov
                Jan 2, 2015 at 18:32
                Your have another version of jackson jars which are loading before these jars. check the other version and remove those
– NullPointerException
                Jan 2, 2015 at 18:33

I was getting the exactly same issue. I was using Maven for dependency management and had added dependency for jackson-databind module only like this

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>

and then I resolved it by doing this.. I added its transitive dependencies explicitly with the same jackson.version mentioned for each of them in the pom.xml file, as guided here

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-annotations</artifactId>
    <version>${jackson.version}</version>
</dependency>
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>${jackson.version}</version>
</dependency>
                This worked for me, but note this jar should then occur in the classpath before the jars with the earlier version of jackson.
– shaneb
                Oct 19, 2017 at 21:14
                This worked for me..thanks.. i have added above both whith my <artifactId>jackson-databind</artifactId> dependancy
– Nilesh
                Nov 16, 2017 at 9:52
                I am using 2.10 version for all three, I m getting this error. Which version would you suggest to resolve this issue .
– Vijay
                Oct 18, 2019 at 8:07
                If anyone's getting this error after manually copying the three jackson-*.jar-s under Tomcat's WEB-INF/lib, make sure you don't have older exploded jars under WEB-INF/classes/com/fasterxml/*.
– lainatnavi
                Oct 27, 2020 at 15:51
                This worked for me with version 'v2.14.2' for 'jackson-databind' and 'jackson-dataformat-yaml' and the two additional dependencies mentioned in the answer.
– juanmi
                Mar 9 at 15:17

I came here with a similar issue on Google App Engine. Here is how I fixed it.

First I ran:

mvn dependency:tree

To find who is using the older version. I then excluded that from the offending dependency like so:

<dependency>
    <groupId>com.google.appengine.tools</groupId>
    <artifactId>appengine-gcs-client</artifactId>
    <version>0.6</version>
    <exclusions>
        <exclusion>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
        </exclusion>
    </exclusions>
</dependency>

Next I added the newer version of the dependency in my pom.xml:

<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-core</artifactId>
    <version>2.8.7</version>
</dependency>

Hope this help others who stumble here.

If you're using gradle, it should something like this. implementation ("com.google.api-client:google-api-client:1.23.0") { exclude group: 'com.fasterxml.jackson.core', module: 'jackson-core' } – aaronvargas Jul 18, 2018 at 17:31

I had the same issue. There was some incompatibility between the jackson-version 2.6.3 and another dependency (graphaware-framework-embedded).

I could resolve the issue by simply removing the dependency on jackson in my own pom and just let the other dependency load whatever jackson-version it needed.

<dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-annotations</artifactId> <version>${jackson.version}</version> </dependency> <dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-core</artifactId> <version>${jackson.version}</version> </dependency>

Updating Eclipse references, without this runner configs were accessing earlier edition of jackson project.

eclipse:eclipse -U

I faced the same issue just now while upgrading my project from spring 3 to 4.1.6.

A little background for reference, just in case if it helps anyone running into same issue===> First, it prompted me with error for mappingJacksonconverter vs mappingJackson2converter since the former doesn't exist anymore with spring 4. Once I changed those references in code, I ran into issue with my dispatcher servlet since it had xsd definitions from spring 3 support. Once that's corrected, my last step in journey was this error which you all faced as well.

My solution: I had older versions of following jars: jackson-annotations, jackson-core, jackson-databind, jackson-core-asl, jackson-mapper-asl

I upgraded first 3 jars to 2.10.0.pr1 release and last 2 to 1.9.13 release.

I also had one more older jar i.e.com.fasterxml.jackson.core.jar which I had to remove as well. Anyways, as error suggested this was the key reason for the mismatch (Like Tobias said in comment prior to mine)

I think only last paragraph is important from this particular question point of view, but I am hoping my narration of issues faced leading up to that may help someone saving 4-5 hrs :) Cheers, folks!

For me, I updated the version to a recently released version i.e. 2.12.4 and it worked fine.

Note: I was using another project inside the build path of a larger project in eclipse. The jackson update was done inside the pom.xml file of the smaller project.

As it’s currently written, your answer is unclear. Please edit to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers in the help center. – Community Nov 11, 2021 at 1:31

Thanks for contributing an answer to Stack Overflow!

  • Please be sure to answer the question. Provide details and share your research!

But avoid

  • Asking for help, clarification, or responding to other answers.
  • Making statements based on opinion; back them up with references or personal experience.

To learn more, see our tips on writing great answers.