2013-10-21 76 views
0

使用不同版本的mongodb java客戶端時出現更新錯誤。 我運行了依賴關係報告,發現只有1個用於mongdb java驅動程序的jar文件存在。 請指導爲什麼會出現此錯誤,我正嘗試通過GORM更新域對象。Grails MongoDB NoSuchFieldError:ACKNOWLEDGED

dependencies { 
runtime "org.mongodb:mongo-java-driver:2.9.0" 
} 


plugins { 
compile (":mongodb:1.3.0"){ 
    excludes "mongo-java-driver"; 
} 
} 


Message: ACKNOWLEDGED 
Line | Method 
    ->> 646 | doInDB     in     
org.grails.datastore.mapping.mongo.engine.MongoEntityPersister$5 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
| 616 | updateEntry    in 
org.grails.datastore.mapping.mongo.engine.MongoEntityPersister 
|  78 | updateEntry . . . . . . in  '' 
| 846 | run      in  
org.grails.datastore.mapping.engine.NativeEntryEntityPersister$2 
|  33 | executePendingOperation in 
org.grails.datastore.mapping.core.impl.PendingOperationExecution 
| 364 | flushPendingOperations in org.grails.datastore.mapping.core.AbstractSession 
| 343 | flushPendingUpdates . . in  '' 
| 263 | flush     in  '' 
| 126 | flush . . . . . . . . . in org.grails.datastore.mapping.mongo.MongoSession 

回答

1

WriteConcern.ACKNOWLEDGED僅在MongoDB Java驅動程序版本2.10及以上版本中可用。您可能需要更新您的蒙戈版本:

dependencies { 
runtime "org.mongodb:mongo-java-driver:2.10.0" 
} 

,或者您需要刪除您蒙戈司機在這裏的排斥:

compile (":mongodb:1.3.0"){ 
    excludes "mongo-java-driver"; 
} 

,取而代之的是:

compile ":mongodb:1.3.0" 

如果您採取第二種選擇,這將使用Mongo Java驅動程序的2.11版本,這是此插件代碼所期望的。使用早於2.11版本的驅動程序可能會導致這些問題。