Created
September 23, 2012 19:24
-
-
Save tskardal/3772747 to your computer and use it in GitHub Desktop.
scala-salat: can't serialize class org.joda.time.DateTime (FIXED)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
scalaVersion := "2.9.2" | |
libraryDependencies ++= Seq( | |
"net.databinder" %% "unfiltered-filter" % "0.6.4", | |
"com.novus" %% "salat" % "1.9.1", | |
"org.scalaj" %% "scalaj-time" % "0.6", | |
"javax.servlet" % "servlet-api" % "2.3" % "provided", | |
"org.eclipse.jetty" % "jetty-webapp" % "7.4.5.v20110725" % "container", | |
"org.clapper" %% "avsl" % "0.4" | |
) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
package domain | |
import com.mongodb.casbah.Imports._ | |
import com.novus.salat.global._ | |
import com.novus.salat._ | |
import org.bson.types.ObjectId | |
import com.mongodb.casbah.MongoConnection | |
import org.scala_tools.time.Imports._ | |
import com.mongodb.casbah.commons.conversions.scala.{RegisterConversionHelpers, RegisterJodaTimeConversionHelpers} | |
case class User (name: String, registered: DateTime) | |
object UserDAO extends dao.SalatDAO[User, ObjectId](collection = MongoConnection()("salatjoda")("Users")) | |
object SalatTest extends App { | |
RegisterConversionHelpers() // Problem: was missing () | |
RegisterJodaTimeConversionHelpers() // Problem: was missing () | |
val user = User("Bob", DateTime.now) | |
UserDAO.insert(user) | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[error] (run-main) java.lang.IllegalArgumentException: can't serialize class org.joda.time.DateTime | |
java.lang.IllegalArgumentException: can't serialize class org.joda.time.DateTime | |
at org.bson.BasicBSONEncoder._putObjectField(BasicBSONEncoder.java:270) | |
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:174) | |
at org.bson.BasicBSONEncoder.putObject(BasicBSONEncoder.java:120) | |
at com.mongodb.DefaultDBEncoder.writeObject(DefaultDBEncoder.java:27) | |
at com.mongodb.OutMessage.putObject(OutMessage.java:143) | |
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:252) | |
at com.mongodb.DBApiLayer$MyCollection.insert(DBApiLayer.java:211) | |
at com.mongodb.casbah.MongoCollectionBase$class.insert(MongoCollection.scala:560) | |
at com.mongodb.casbah.MongoCollection.insert(MongoCollection.scala:897) | |
at com.mongodb.casbah.MongoCollectionBase$class.insert(MongoCollection.scala:546) | |
at com.mongodb.casbah.MongoCollection.insert(MongoCollection.scala:897) | |
at com.novus.salat.dao.SalatDAO.insert(SalatDAO.scala:265) | |
at com.novus.salat.dao.BaseDAOMethods$class.insert(DAO.scala:47) | |
at com.novus.salat.dao.SalatDAO.insert(SalatDAO.scala:40) | |
at domain.SalatTest$delayedInit$body.apply(SalatTest.scala:18) | |
at scala.Function0$class.apply$mcV$sp(Function0.scala:34) | |
at scala.runtime.AbstractFunction0.apply$mcV$sp(AbstractFunction0.scala:12) | |
at scala.App$$anonfun$main$1.apply(App.scala:60) | |
at scala.App$$anonfun$main$1.apply(App.scala:60) | |
at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:59) | |
at scala.collection.immutable.List.foreach(List.scala:76) | |
at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:30) | |
at scala.App$class.main(App.scala:60) | |
at domain.SalatTest$.main(SalatTest.scala:14) | |
at domain.SalatTest.main(SalatTest.scala) | |
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) | |
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) | |
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) | |
at java.lang.reflect.Method.invoke(Method.java:601) |
Me too, thx.
Thanks.
Awesome
This commit here shows more details on how to integrate casbah with salat (and Joda datetime): gsluthra/fitnessz@ee33711
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
This saved me. Thx.