我试着把工作变成一个非常简单的Salat例子。
build.sbt:
libraryDependencies += "com.novus" %% "salat" % "1.9.9"在sbt控制台中
import com.novus.salat._
import com.novus.salat.global._
import com.mongodb.casbah.Imports._
case class Alpha(x: String)
val a = Alpha(x = "Hello world")
val dbo = grater[Alpha].asDBObject(a) // not working最后一行抛出一个异常:
GRATER GLITCH - unable to find or instantiate a grater using supplied path name
REASON: Very strange! Path='Alpha' from pickled ScalaSig causes ClassNotFoundException
Context: 'global'
Path from pickled Scala sig: 'Alpha'我不知道出了什么问题,在互联网上看了两个小时的例子之后,我找不到one,我可以让它发挥作用。它们都过时了吗?还是我的例子错了?
发布于 2016-01-13 17:52:11
SBT以某种方式干扰Salat加载类的方式,并且它无法使用默认的类加载器找到您的类。测试代码不是在sbt控制台,而是创建一个简单的项目并运行它。
更新:正如Thomas所指出的,Salat需要编译case类,并在类路径上加载它。
build.sbt:
libraryDependencies += "com.novus" %% "salat" % "1.9.9"HelloWorld.scala:
import com.novus.salat._
import com.novus.salat.global._
case class Alpha(x: String)
object HelloWorld {
def main(args: Array[String]): Unit = {
val a = Alpha(x = "Hello world")
val dbo = grater[Alpha].asDBObject(a)
println(dbo.toString)
}
}https://stackoverflow.com/questions/34771270
复制相似问题