salat:GRATER GLITCH - ClassNotFoundException

salat: GRATER GLITCH - ClassNotFoundException

我正在努力使工作成为一个非常简单的礼拜示例。

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'

我不知道出了什么问题,在互联网上查看示例 2 小时后,我找不到 一个 我可以工作的。它们都过时了还是我的示例中某处有误?

SBT 以某种方式干扰 Salat 加载 class 的方式,它无法使用其默认 class 加载程序找到您的 class。不在 sbt 控制台中测试代码,而是创建一个简单的项目并 运行 它。

更新:正如 Thomas 指出的那样,Salat 需要编译案例 class 并在 class 路径上才能加载它。

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)
  }
}