2014-03-03 63 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

這是微不足道的我的朋友,相信我在發佈之前已經閱讀了堆棧跟蹤。 不過,謝謝。 –

相關問題