2016-04-28 86 views
0

使用Morphia 1.1.1。使用Mongo 4.0.5快照,存儲來自Twitter4J的用戶對象。Morphia的序列化問題

我檢索從蒙戈對象「用戶」時,出現此錯誤:

org.mongodb.morphia.mapping.MappingException: No usable constructor for [Ltwitter4j.GeoLocation; 

對象,在蒙戈在JSON序列的相關部分看起來像:

"favoriteCount" : 4, 
    "place" : { 
     "name" : "Kewaunee", 
     "countryCode" : "US", 
     "id" : "0114d7a909aa6731", 
     "country" : "United States", 
     "placeType" : "city", 
     "url" : "https://api.twitter.com/1.1/geo/id/0114d7a909aa6731.json", 
     "fullName" : "Kewaunee, WI", 
     "boundingBoxType" : "Polygon", 
     "boundingBoxCoordinates" : [ 
      { 
       "className" : "[Ltwitter4j.GeoLocation;" 
      } 
     ], 
     "accessLevel" : 0 
    }, 

我檢查,實際上在GeoLocation類的源代碼中添加了一個無參的公共構造函數。這是什麼「包裝名稱前的」L「事物,以及」;「最後?

回答

0

GeoLocation需要一個無參數的構造函數進行反序列化。所以它可能無法直接使用。 [L位表示該類型是一個數組。

另外,什麼是Mongo 4.0.5快照? Mongodb沒有像這樣的名稱/版本。最新的數據庫版本3.2.6(?我認爲我剛剛看到該版本)和Java驅動程序是在3.2.2。

+0

我一定困惑了版本號。我確實給GeoLocation類的源添加了一個無參數構造函數,那麼給了什麼? – seinecle

+0

你已經更新了你通過maven獲得的twitter4j庫嗎?你需要注意用你更新的位來替換下載的位。 – evanchooly