0

play reactmongo を 0.10.5.0.AKKA23 から 0.11.0.play24 にアップグレードしました。ただし、アップグレード前に正常にコンパイルされるコードで次のエラーが発生しました。

val gridFS = new GridFS(db)
val file = gridFS.find(BSONDocument("filename" -> new BSONString(name)))
serve(gridFS).map(_.withHeaders(CONTENT_DISPOSITION -> "inline;"))

エラーメッセージ

[error]  required: reactivemongo.api.gridfs.GridFS[play.modules.reactivemongo.json.JSONSerializationPack.type]
[error] serve(gridFS).map(_.withHeaders(CONTENT_DISPOSITION -> "inline;"
4

1 に答える 1

0

新しいプラグイン 0.11 は、ReactiveMongo API に JSONSerializationPack を提供します (コースト ツー コースト アプローチで評価される JSON を操作できるようにします)。

したがって、servePlay Mongo コントローラーのアクションは、この同じ JSON シリアライゼーションを使用して GridFS API で動作します (そしてJsValue/JsObjectではなくBSONValue/を想定していますBSONDocument)。

最初のステップは、reactiveMongoApi.gridFS代わりにを使用することです (ドキュメントに示されているように解決された API インスタンスであることをnew GridFS考慮して)。reactiveMongoApiGridFS インスタンスは、JSON で使用するために適切に初期化されています。

BSONDocument次に、クエリ セレクタを からに更新する必要がありますJson.obj

例は、サンプル アプリにあります。

于 2015-07-02T18:08:07.877 に答える