2014-03-03 65 views
0

我有杰克逊1.8.2,除了嵌套的geo_position属性以外,其他所有工作都正常。升级库版本后Eclipse编译器错误

在浏览了一些SO问题后,我升级到了Jackson 1.9.x,现在Jackson设法识别Position嵌套类,但是抱怨纬度原始的float属性。

另外,当我升级到新的杰克逊版本后,当我尝试编译项目时,eclipse发出了一个奇怪的错误: 尝试降级回到1.8.2,但没有运气。 这有什么奇怪的是,没有实际的错误,并且项目的验证通过很好。

enter image description here

堆栈跟踪:

org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "latitude" (Class task.Position), not marked as ignorable 
at [Source: [email protected]; line: 1, column: 64] (through reference chain: task.ResultSet["results"]->task.Location["geo_position"]->task.Position["latitude"])null 

at org.codehaus.jackson.map.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:53) 
at org.codehaus.jackson.map.deser.StdDeserializationContext.unknownFieldException(StdDeserializationContext.java:267) 
at org.codehaus.jackson.map.deser.std.StdDeserializer.reportUnknownProperty(StdDeserializer.java:673) 
at org.codehaus.jackson.map.deser.std.StdDeserializer.handleUnknownProperty(StdDeserializer.java:659) 
at org.codehaus.jackson.map.deser.BeanDeserializer.handleUnknownProperty(BeanDeserializer.java:1365) 
at org.codehaus.jackson.map.deser.BeanDeserializer._handleUnknown(BeanDeserializer.java:725) 
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:703) 
at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580) 
at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299) 
at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414) 
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697) 
at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580) 
at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:217) 
at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:194) 
at org.codehaus.jackson.map.deser.std.CollectionDeserializer.deserialize(CollectionDeserializer.java:30) 
at org.codehaus.jackson.map.deser.SettableBeanProperty.deserialize(SettableBeanProperty.java:299) 
at org.codehaus.jackson.map.deser.SettableBeanProperty$MethodProperty.deserializeAndSet(SettableBeanProperty.java:414) 
at org.codehaus.jackson.map.deser.BeanDeserializer.deserializeFromObject(BeanDeserializer.java:697) 
at org.codehaus.jackson.map.deser.BeanDeserializer.deserialize(BeanDeserializer.java:580) 
at org.codehaus.jackson.map.ObjectMapper._readMapAndClose(ObjectMapper.java:2732) 
at org.codehaus.jackson.map.ObjectMapper.readValue(ObjectMapper.java:1863) 
at task.JSONParser.fromNative(JSONParser.java:24) 
at task.RESTClient.main(RESTClient.java:85) 

代码: https://github.com/BeOleg/JavaRestClient

回答

0

原来,其中位于项目根.classpath文件,日食留下的旧版本的核心 - 杰克逊罐子,一起用新的,这是导致所有的错误!

我真的要上使用Intelli-J下一次我一定要使用Java ...

<classpath> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
    <classpathentry kind="lib" path="lib/commons-codec-1.6.jar"/> 
    <classpathentry kind="lib" path="lib/commons-logging-1.1.3.jar"/> 
    <classpathentry kind="lib" path="lib/fluent-hc-4.3.2.jar"/> 
    <classpathentry kind="lib" path="lib/httpclient-4.3.2.jar"/> 
    <classpathentry kind="lib" path="lib/httpclient-cache-4.3.2.jar"/> 
    <classpathentry kind="lib" path="lib/httpcore-4.3.1.jar"/> 
    <classpathentry kind="lib" path="lib/httpmime-4.3.2.jar"/> 
    //Just erased bellow line: 
    <classpathentry kind="lib" path="lib/jackson-core-asl-1.8.2.jar"/> 
    <classpathentry kind="lib" path="lib/jackson-core-asl-1.9.13.jar"/> 
    <classpathentry kind="lib" path="lib/jackson-mapper-asl-1.9.13.jar"/> 
    <classpathentry kind="output" path="bin"/> 
</classpath> 

所有学分@Yuri Prezument:d

1

你需要注释task.Position@JsonIgnoreProperties不理你不想要的属性。

Unrecognized field "latitude" (Class task.Position), not marked as ignorable

+0

这是微不足道的我的朋友,相信我在发布之前已经阅读了堆栈跟踪。 不过,谢谢。 –

相关问题