org.fusesource.scalate.TemplateException: нарушение ограничений загрузчика при использовании SBT, встроенных Jetty и scalatra / scalate

Я начал получать эту ошибку вчера, когда использовал встроенную задачу «Jetty-run» в SBT. Я вернул свой код к предыдущей версии, и это все еще происходит.

Обратите внимание, что я упаковал приложение и развернул его в реальном экземпляре пристани, и я не получаю сообщения об ошибке. Я начал получать эту ошибку после добавления некоторых зависимостей в мой проект (могут быть или не быть связаны), но с тех пор удалил их.

Я попробовал «очистить» «clean-lib» и «clean-cache», а также очистить каталоги ~ / .m2 / repository, ~ / .ivy2 / cache и project / boot.

У кого-нибудь есть другие идеи?

Линия, которая взрывается:

templateEngine.layout(uri, Map("flash" -> flash))

Более подробная информация о трассировке стека приведена ниже:

org.fusesource.scalate.TemplateException: loader constraint violation: when resolving method "scala.tools.nsc.Settings.(Lscala/Function1;)V" the class loader (instance of sbt/jetty/LazyJettyRun7$SbtWebAppLoader$1) of the current class, org/fusesource/scalate/support/ScalaCompiler, and the class loader (instance of java/net/URLClassLoader) for resolved class, scala/tools/nsc/Settings, have different Class objects for the type scala/Function1 used in the signature
    at org.fusesource.scalate.TemplateEngine.compileAndLoad(TemplateEngine.scala:775)
    at org.fusesource.scalate.TemplateEngine.compileAndLoadEntry(TemplateEngine.scala:637)
    at org.fusesource.scalate.TemplateEngine.liftedTree1$1(TemplateEngine.scala:368)
    at org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:362)
    at org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:420)
    at org.fusesource.scalate.TemplateEngine.layout(TemplateEngine.scala:521)
    at com.ford.testbuilder.web.AppDefaults$class.com$ford$testbuilder$web$AppDefaults$$render(SharedTraits.scala:79)
    at com.ford.testbuilder.web.AppDefaults$$anonfun$6.apply(SharedTraits.scala:52)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2$$anonfun$6.apply(ScalatraKernel.scala:133)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2$$anonfun$6.apply(ScalatraKernel.scala:133)
    at scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61)
    at scala.collection.immutable.List.foreach(List.scala:45)
    at scala.collection.generic.TraversableForwarder$class.foreach(TraversableForwarder.scala:44)
    at scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(ScalatraKernel.scala:133)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ScalatraKernel.scala:121)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ScalatraKernel.scala:121)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:71)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ScalatraKernel.scala:121)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply(ScalatraKernel.scala:121)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply(ScalatraKernel.scala:121)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:71)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1.apply$mcV$sp(ScalatraKernel.scala:120)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1.apply(ScalatraKernel.scala:120)
    at org.scalatra.ScalatraKernel$$anonfun$handle$1.apply(ScalatraKernel.scala:120)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:71)
    at org.scalatra.ScalatraKernel$class.handle(ScalatraKernel.scala:119)
    at com.ford.testbuilder.web.LoginServlet.org$scalatra$CookieSupport$$super$handle(LoginServlet.scala:10)
    at org.scalatra.CookieSupport$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(CookieSupport.scala:102)
    at org.scalatra.CookieSupport$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply(CookieSupport.scala:102)
    at org.scalatra.CookieSupport$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply(CookieSupport.scala:102)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:71)
    at org.scalatra.CookieSupport$$anonfun$handle$1.apply$mcV$sp(CookieSupport.scala:101)
    at org.scalatra.CookieSupport$$anonfun$handle$1.apply(CookieSupport.scala:101)
    at org.scalatra.CookieSupport$$anonfun$handle$1.apply(CookieSupport.scala:101)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:71)
    at org.scalatra.CookieSupport$class.handle(CookieSupport.scala:100)
    at com.ford.testbuilder.web.LoginServlet.org$scalatra$FlashMapSupport$$super$handle(LoginServlet.scala:10)
    at org.scalatra.FlashMapSupport$$anonfun$handle$1.apply$mcV$sp(flashMap.scala:101)
    at org.scalatra.FlashMapSupport$$anonfun$handle$1.apply(flashMap.scala:100)
    at org.scalatra.FlashMapSupport$$anonfun$handle$1.apply(flashMap.scala:100)
    at scala.util.DynamicVariable.withValue(DynamicVariable.scala:71)
    at org.scalatra.FlashMapSupport$class.handle(flashMap.scala:100)

person codefly    schedule 12.04.2011    source источник


Ответы (1)


Я понял это после того, как попробовал новую проверку на чужом компьютере (который работал нормально) и сравнил пути к классам. Я обнаружил, что в моем пути к классам есть как scala-library-2.8.1.jar, так и scala-library.jar.

Это было вызвано следующей строкой в ​​моем файле проекта:

override def filterScalaJars = false

Потратил на это большую часть дня :(

person codefly    schedule 12.04.2011