0

I'am upgrading the play from 2.4.3 to 2.5.2 in the process I was able to upgrade the play but when I upgraded the reactive mongo library dependency from 0.11.0.play24 to 0.11.14-play24 it was throwing following errors

found   : (String, play.api.libs.json.JsValue)
[error]  required: reactivemongo.bson.Producer[reactivemongo.bson.BSONElement]
[error]     (which expands to)  reactivemongo.bson.Producer[(String, reactivemongo.bson.BSONValue)]
[error] Error occurred in an application involving default arguments.
[error]     claimsCollection.update(BSONDocument("id" -> claimId), BSONDocument("$set" -> BSONDocument("status"-> "Approved" , "updationDate" -> Json.toJson(ZonedDateTime.now()))))
[error]

The code I have written like this

import com.greenroom6.auth.models.claims.Claims
import javax.inject.Inject
import play.modules.reactivemongo.ReactiveMongoApi
import play.modules.reactivemongo.json.collection.JSONCollection
import scala.concurrent.ExecutionContext
import com.greenroom6.auth.util.UniqueIdGenerator
import reactivemongo.bson.BSONDocument
import play.api.libs.json.{Json,JsObject}
import play.modules.reactivemongo.json._
import scala.concurrent.Future
import reactivemongo.api.commands.WriteResult
import reactivemongo.api.ReadPreference
import java.time.ZonedDateTime
import play.modules.reactivemongo.json._,ImplicitBSONHandlers._
import reactivemongo.bson._
import play.modules.reactivemongo.ReactiveMongoComponents

class ClaimsDaoImpl @Inject()(reactivemongo : ReactiveMongoApi) extends ClaimsDao {


  protected def claimsCollection = reactivemongo.db.collection[JSONCollection]("claims")

  def claimProfile(claim:Claims)(implicit ec :ExecutionContext): Future[WriteResult] = {
    val claimTosave = claim.copy(id = Some(UniqueIdGenerator.generate), status = "Pending"  )
    claimsCollection.save(claimTosave)
  }

  def approveClaim(claimId:String)(implicit ec :ExecutionContext): Future[WriteResult] = {
    claimsCollection.update(BSONDocument("id" -> claimId), BSONDocument("$set" -> BSONDocument("status"-> "Approved" , "updationDate" -> Json.toJson(ZonedDateTime.now()))))
  }
} 

What should I require to do to resolve the issue?

1 Answers1

0

I think you have the wrong dependency. According to their Github Page: ReactiveMongo/Play-ReactiveMongo

val reactiveMongoVer = "0.11.14"

// only for Play 2.5.x
libraryDependencies ++= Seq(
  "org.reactivemongo" %% "play2-reactivemongo" % reactiveMongoVer
)

Instead it seems you use this:

// only for Play 2.4.x
libraryDependencies ++= Seq(
  "org.reactivemongo" %% "play2-reactivemongo" % s"$reactiveMongoVer-play24"
)
pme
  • 14,156
  • 3
  • 52
  • 95
  • I have used "org.reactivemongo" %% "play2-reactivemongo" % "0.11.14" but I have encountered errors like /Users/ege/Sites/Aeione/greenroom6-services-v3/greenroom6-services-v3/modules/greenroom6Auth/app/com/greenroom6/auth/dao/email/EmailDaoImpl.scala:53: No Json serializer as JsObject found for type play.api.libs.json.JsObject. Try to implement an implicit OWrites or OFormat for this type. [error] emailCollection.find(Json.obj("delivered" -> false,"sendTry" -> 0)).cursor[Email]().collect[List](10) – Manoj S Ramaswamy May 09 '18 at 08:19
  • check https://stackoverflow.com/questions/31142366/no-json-serializer-as-jsobject-found-for-type-play-api-libs-json-jsobject?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa – pme May 09 '18 at 09:09