2013-03-26 60 views
3

我想在我们的项目斯卡拉/ Scalatra的版本升级到以下几点:Scalatra的2.2.0升级中遇到的NoClassDefFoundError:GenTraversableLike

  • 斯卡拉2.10.1

  • 了Scalatra(和Scalatra的-Scalate的,Scalatra的-scalatest)2.2.0

使用SBT 0.11.3

代码编译OK,但运行单元测试时使用scalatra TemplateEngine或启动我们的jetty服务器(也使用scalatra)时,出现以下错误。

有没有人看到这个?任何建议非常感谢。

谢谢!

java.lang.NoClassDefFoundError: scala/collection/GenTraversableLike$class at org.fusesource.scalate.TemplateEngine$$anon$1.(TemplateEngine.scala:162) at org.fusesource.scalate.TemplateEngine.sourceDirectoriesForwarder(TemplateEngine.scala:162) at org.fusesource.scalate.TemplateEngine.(TemplateEngine.scala:114) at com.springer.core.template.TemplateTestHelper$class.beforeAll(TemplateTestHelper.scala:19) at com.springer.core.template.SupportTemplateTest.beforeAll(SupportTemplateTest.scala:10) at org.scalatest.BeforeAndAfterAll$class.beforeAll(BeforeAndAfterAll.scala:150) at com.springer.core.template.SupportTemplateTest.beforeAll(SupportTemplateTest.scala:10)

回答

0

没有看到你的build.sbt或项目/ build.scala文件,它是很难确定的,但在这里,你可能会想尝试一些东西。

首先,我还没有意识到有人正在Scalatra 2.2.0上试用Scalatra 2.2.0,所以你在这里处于未知领域。理论上它应该可以工作,但是快速降级到2.10.0就可以排除。其次,在2.1.x和2.2.0之间Scalate模板的默认接线有所改变。

Scalatra 2.1.0在默认的g8项目框架中没有包含Scalate模板编译,这是后来想要在生产环境中部署编译模板的很多人的混淆之处。因此,默认的Scalatra 2.2.0项目框架带有一些新功能。

它直径达编译模板,像这样:

/* wire up the precompiled templates */ 
    override protected def defaultTemplatePath: List[String] = List("/templates/views") 

    override protected def createTemplateEngine(config: ConfigT) = { 
    val engine = super.createTemplateEngine(config) 
    engine.layoutStrategy = new DefaultLayoutStrategy(engine, 
     TemplateEngine.templateTypes.map("/templates/layouts/default." + _): _*) 
    engine.packagePrefix = "templates" 
    engine 
    } 

它还增加了一个Scalate template compiler

addSbtPlugin("com.mojolly.scalate" % "xsbt-scalate-generator" % "0.4.2") 

如果它不是一个斯卡拉2.10.1相关的问题,我建议确定它是否为演示编译器的最简单方法可能是使用最新的g8来查看(或生成并使用)新的Scalatra 2.2.0项目框架。

0

在构建中定义的依赖性如何?他们使用%%代替%
从2.2.x中和起来,我们需要%%它在哪里%
之前,这可能是你看到

+0

嗨,吉姆,感谢您的回复错误的原因,我们正在使用%(另一个项目也使用这个,它似乎工作正常...) – Blackcat123 2013-03-28 16:23:14

+0

斯卡拉2.10你需要使用%%该%将只适用于2.9.2 – 2013-03-28 20:53:31