I am trying to add MongoDB support to my scalatra. Inside ScalatraBootstrap.scala I have the following code:
import org.scalatra._
import javax.servlet.ServletContext
import org.mongodb.scala.MongoClient
import org.scalatra.example.MongoController
class ScalatraBootstrap extends LifeCycle {
override def init(context: ServletContext) {
// As you can see, there's not much to do in order to get MongoDb working with Scalatra.
// We're connecting with default settings - localhost on port 27017 -
// by calling MongoClient() with no arguments.
val mongoClient = MongoClient()
val mongoColl = mongoClient.getDatabase("mydb").getCollection("test_data")
// pass a reference to the Mongo collection into your servlet when you mount it at application start:
context.mount(new MongoController(mongoColl), "/*")
}
}
and my build.sbt contains
version := "0.1.0-SNAPSHOT"
scalaVersion := "2.13.1"
resolvers += Classpaths.typesafeReleases
libraryDependencies ++= Seq(
"org.scalatra" %% "scalatra" % ScalatraVersion,
"org.scalatra" %% "scalatra-scalatest" % ScalatraVersion % "test",
"ch.qos.logback" % "logback-classic" % "1.2.3" % "runtime",
"org.eclipse.jetty" % "jetty-webapp" % "9.4.28.v20200408" % "container",
"javax.servlet" % "javax.servlet-api" % "3.1.0" % "provided"
)
libraryDependencies ++= Seq(
"org.mongodb.scala" %% "mongo-scala-driver" % "2.8.0",
"org.mongodb.scala" %% "mongo-scala-bson" % "2.8.0",
"org.mongodb" % "bson" % "3.12.0",
"org.mongodb" % "mongodb-driver-core" % "3.12.0",
"org.mongodb" % "mongodb-driver-async" % "3.12.0"
)
enablePlugins(SbtTwirl)
enablePlugins(ScalatraPlugin)
The error I am receiving is : import org.scalatra.example.MongoController
Are you following this Scalatra documentation? https://scalatra.org/guides/2.7/persistence/mongodb.html
Actually,
MongoControlleris not provided as a part of Scalatra framework. You have to createMongoControllerin your project.