#scala #jetty #sbt #scalate #scalatra
#scala #jetty #sbt #масштабировать #scalatra
Вопрос:
Я начал получать эту ошибку вчера при использовании встроенной задачи ‘jetty-run’ в SBT. Я вернул свой код к предыдущей версии, и это все еще происходит.
Обратите внимание, что я упаковал приложение и развернул его в реальном экземпляре jetty, и я не получаю ошибку. Я начал получать эту ошибку после добавления некоторых зависимостей в мой проект (могут быть связаны, а могут и не быть связаны), но с тех пор удалил их.
Я попытался «очистить» ‘clean-lib’ и ‘clean-cache’, а также очистить мои каталоги ~ /.m2/ repository, ~ /.ivy2/cache и project /boot.
У кого-нибудь есть другие идеи?
Строка, которая разрывается, является:
TemplateEngine.layout(uri, Map("flash" -> flash))
Ниже приведена дополнительная трассировка стека:
org.fusesource.scalate.Исключение TemplateException: нарушение ограничений загрузчика: при разрешении метода "scala.tools.nsc.Settings.(Lscala/Function1;)V " загрузчик класса (экземпляр sbt / jetty/LazyJettyRun7$ SbtWebAppLoader $ 1) текущего класса org/fusesource/scalate/support/ScalaCompiler) и загрузчик класса (экземпляр java / net /URLClassLoader) для разрешенного класса, scala / tools / nsc /Settings, имеют разные объекты класса для тип scala/Function1, используемый в подписи в org.fusesource.scalate.TemplateEngine.compileAndLoad(TemplateEngine.scala:775) в org.fusesource.scalate.TemplateEngine.compileAndLoadEntry(TemplateEngine.scala:637) в org.fusesource.scalate.TemplateEngine.Поднятое дерево 1 $ 1(TemplateEngine.scala:368) в org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:362) в org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:420) в org.fusesource.scalate.TemplateEngine.макет (TemplateEngine.scala:521) при com.ford.testbuilder.web.AppDefaults$class.com$ford$testbuilder$web$AppDefaults$$render(SharedTraits.scala:79) в com.ford.testbuilder.web.AppDefaults$$anonfun$6.применить(SharedTraits.scala:52) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2$$anonfun$6.apply(ScalatraKernel.scala:133) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2$$anonfun$6.apply(ScalatraKernel.scala:133) в scala.collection.LinearSeqOptimized$class.foreach(LinearSeqOptimized.scala:61) в scala.collection.immutable.List.foreach(список.scala:45) в scala.collection.generic.Обходимый сервер $class.foreach(обходимый сервер.scala:44) в scala.collection.mutable.ListBuffer.foreach(ListBuffer.scala:42) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply$mcV$sp(ScalatraKernel.scala:133) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ScalatraKernel.scala:121) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1$$anonfun$apply$mcV$sp$2.apply(ScalatraKernel.scala:121) в scala.util.DynamicVariable.withValue(DynamicVariable.scala:71) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply$mcV$sp(ScalatraKernel.scala:121) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply(ScalatraKernel.scala:121) при org.scalatra.ScalatraKernel$$anonfun$handle$1$$anonfun$apply$mcV$sp$1.apply(ScalatraKernel.scala:121) в scala.util.DynamicVariable.withValue(DynamicVariable.scala:71) в org.scalatra.ScalatraKernel$$anonfun$обработайте$1.примените$ mcV $ sp(ScalatraKernel.scala:120) в org.scalatra.ScalatraKernel$$anonfun$обработайте$1.применить(ScalatraKernel.scala:120) в org.scalatra.ScalatraKernel$$anonfun$обработайте$1.применить(ScalatraKernel.scala:120) в scala.util.DynamicVariable.withValue(DynamicVariable.scala:71) в org.scalatra.ScalatraKernel$class.handle(ScalatraKernel.scala:119) при com.ford.testbuilder.web.LoginServlet.org$scalatra$CookieSupport$$super$handle(LoginServlet.scala:10) в org.scalatra.CookieSupport$$anonfun$обрабатывает$1$$anonfun$применить$mcV$ sp $1.применить $ mcV $ sp(CookieSupport.scala: 102) в org.scalatra.CookieSupport$$anonfun$обрабатывает$1$$anonfun$применить$mcV $ sp $1.применить(CookieSupport.scala: 102) в org.scalatra.CookieSupport$$anonfun$обрабатывает$1$$anonfun$применить$mcV $ sp $1.применить(CookieSupport.scala: 102) в scala.util.DynamicVariable.withValue(DynamicVariable.scala:71) в org.scalatra.CookieSupport$$anonfun$обрабатывает$ 1.примените$mcV $ sp(CookieSupport.scala: 101) в org.scalatra.CookieSupport$$anonfun$обрабатывает $1.применить(CookieSupport.scala:101) в org.scalatra.CookieSupport$$anonfun$обрабатывает $1.применить(CookieSupport.scala:101) в scala.util.DynamicVariable.withValue(DynamicVariable.scala:71) в org.scalatra.CookieSupport$class.handle(CookieSupport.scala:100) при com.ford.testbuilder.web.LoginServlet.org$scalatra$FlashMapSupport$$super$handle(LoginServlet.scala:10) в org.scalatra.FlashMapSupport$$anonfun$обрабатывает $ 1.примените$ mcV $ sp(FlashMap.scala: 101) в org.scalatra.FlashMapSupport$$anonfun$обрабатывает $ 1.применить (FlashMap.scala:100) в org.scalatra.FlashMapSupport$$anonfun$обрабатывает $ 1.применить (FlashMap.scala:100) в scala.util.DynamicVariable.withValue(DynamicVariable.scala:71) в org.scalatra.FlashMapSupport$class.handle(FlashMap.scala:100)
Ответ №1:
Я понял это после попытки новой проверки на чужом компьютере (который работал нормально) и сравнения путей к классам. Я обнаружил, что у меня были оба scala-library-2.8.1.jar а также scala-library.jar в моем пути к классу.
Это было вызвано следующей строкой в файле моего проекта:
переопределить def filterScalaJars = false
Потратил большую часть дня на это: (