Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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

Tags:

java

jackson

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();        try{           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) 
like image 863
jbakirov Avatar asked Jan 02 '15 18:01

jbakirov


1 Answers

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> 
like image 194
Priya Aggarwal Avatar answered Sep 25 '22 21:09

Priya Aggarwal