Here is complete installation steps on Salat plugin for Play 2.3:
- You modify your project/Build.scala:
import sbt._ import Keys._ import play.Play.autoImport._ import PlayKeys._ import play.twirl.sbt.Import.TwirlKeys object ApplicationBuild extends Build { val appName = "Playframework" val appVersion = "2.3.6" val appDependencies = Seq( "se.radley" %% "play-plugins-salat" % "1.5.0" ) val main = Project(appName, file(".")).enablePlugins(play.PlayScala).settings( version := appVersion, libraryDependencies ++= appDependencies, routesImport += "se.radley.plugin.salat.Binders._", TwirlKeys.templateImports += "org.bson.types.ObjectId" ) }
- Creating or appending conf/play.plugins
500:se.radley.plugin.salat.SalatPlugin
- Continue edit conf/application.conf
dbplugin = disabled evolutionplugin = disabled ehcacheplugin = disabled mongodb.default.db = "mydb" # Optional values #mongodb.default.host = "127.0.0.1" #mongodb.default.port = 27017 #mongodb.default.user = "leon" #mongodb.default.password = "123456" # MongoURI # ~~~~~ # a MongoURI can also be used http://www.mongodb.org/display/DOCS/Connections # mongodb.default.uri = "mongodb://127.0.0.1:27017,mongodb.org:1337/salat-test" # WriteConcern # ~~~~~ # Can be any of the following # # fsyncsafe - Exceptions are raised for network issues and server errors; Write operations wait for the server to flush data to disk. # replicassafe - Exceptions are raised for network issues and server errors; waits for at least 2 servers for the write operation. # safe - Exceptions are raised for network issues and server errors; waits on a server for the write operation. # normal - Exceptions are raised for network issues but not server errors. #mongodb.default.writeconcern = "safe" # Replica sets # ~~~~~ # http://www.mongodb.org/display/DOCS/Why+Replica+Sets # # To user a replicaset instead of a single host, omit optional values and use the configuration below instead. # Since replica sets use public key authentication, user and password won't work together with the replicaset option. #mongodb.default.replicaset { # host1.host = "10.0.0.1" # # host2.host = "10.0.0.2" # host2.port = 27018 #} # Mongo Options # ~~~~~ # http://api.mongodb.org/java/2.8.0/com/mongodb/MongoOptions.html # # For passing custom options to the MongoConnection add the properties under "options". Add just the ones which are different from defaults. #mongodb.default.options { # connectionsPerHost = 100 # threadsAllowedToBlockForConnectionMultiplier = 1000 # connectTimeout = 60000 #}
- Create app/models/mongoContext.scala
package models import com.novus.salat.dao._ import com.novus.salat.annotations._ import com.mongodb.casbah.Imports._ import com.novus.salat.{TypeHintFrequency, StringTypeHintStrategy, Context} import play.api.Play import play.api.Play.current package object mongoContext { implicit val context = { val context = new Context { val name = "global" override val typeHintStrategy = StringTypeHintStrategy(when = TypeHintFrequency.WhenNecessary, typeHint = "_t") } context.registerGlobalKeyOverride(remapThis = "id", toThisInstead = "_id") context.registerClassLoader(Play.classloader) context } }
- Remove built.sbt as we are using Build.scala. This to avoid below runtime error.
java.lang.RuntimeException: Overlapping output directories
- Start your play application using "activator run".
References:
https://github.com/leon/play-salat
No comments:
Post a Comment