首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >salat:刀片的小故障- ClassNotFoundException

salat:刀片的小故障- ClassNotFoundException
EN

Stack Overflow用户
提问于 2016-01-13 15:58:17
回答 1查看 208关注 0票数 2

我试着把工作变成一个非常简单的Salat例子。

build.sbt:

代码语言:javascript
复制
libraryDependencies += "com.novus" %% "salat" % "1.9.9"

sbt控制台

代码语言:javascript
复制
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

最后一行抛出一个异常:

代码语言:javascript
复制
 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,我可以让它发挥作用。它们都过时了吗?还是我的例子错了?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-01-13 17:52:11

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

更新:正如Thomas所指出的,Salat需要编译case类,并在类路径上加载它。

build.sbt:

代码语言:javascript
复制
libraryDependencies += "com.novus" %% "salat" % "1.9.9"

HelloWorld.scala:

代码语言:javascript
复制
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)
  }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34771270

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档