2013-03-26 64 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