2016-05-12 16 views
0

Ich betreibe eine Webanwendung mit Scala Version 2.9.0 und Scalatra Version 2.1.0-SNAPSHOT. Ich baue die Anwendung mit Java 1.6. Es läuft gut, wenn ich es mit Java 1.7 laufe, aber scheitert, wenn ich mit Java 1.8 mit diesem Fehler lief. Was kann das Problem sein?Scalatra werfende Nullzeigerausnahme mit Java 8

Es ist wichtig für mich, mit Java 1.8 zu laufen, weil ich einige Drittanbieter-Jars in meiner Anwendung verwendet habe, die Java 1.8 entsprechen. Ich habe andere Scala-Anwendungen mit ich habe mit Java 1.6 gebaut und laufen gut mit Java 1.8, aber ich bin nur mit diesem Problem konfrontiert mit Anwendungen mit Scalatras.

HTTP Status 500 - 

type Exception report 

message 

description The server encountered an internal error that prevented it from fulfilling this request. 

exception 

org.fusesource.scalate.TemplateException 
    org.fusesource.scalate.TemplateEngine.compileAndLoad(TemplateEngine.scala:834) 
    org.fusesource.scalate.TemplateEngine.compileAndLoadEntry(TemplateEngine.scala:691) 
    org.fusesource.scalate.TemplateEngine.liftedTree1$1(TemplateEngine.scala:411) 
    org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:405) 
    org.fusesource.scalate.TemplateEngine.load(TemplateEngine.scala:475) 
    org.scalatra.scalate.ScalateSupport$class.renderScalateErrorPage(ScalateSupport.scala:140) 
    org.scalatra.scalate.ScalateSupport$class.handle(ScalateSupport.scala:131) 

root cause 

java.lang.NullPointerException 
    scala.tools.nsc.Global$Run.compileLate(Global.scala:1043) 
    scala.tools.nsc.symtab.SymbolLoaders$SourcefileLoader.doComplete(SymbolLoaders.scala:303) 
    scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:111) 
    scala.tools.nsc.symtab.SymbolLoaders$SymbolLoader.complete(SymbolLoaders.scala:85) 
    scala.tools.nsc.symtab.Symbols$Symbol.info(Symbols.scala:732) 
+0

Warum verwenden Sie scala 2.9? Das ist sehr alt. – Falmarri

Antwort

0

Die Release Notes für Scala 2.9 Liste ist es Abhängigkeiten: "Es ist die Runtime-Version 1.6 oder 1.7 Java erfordert." Scala 2.11.1 kündigte Unterstützung für Java 8 an, nannte das aber "experimental". Das experimentelle Adjektiv wurde aus den Release Notes in Scala 2.11.2 gestrichen, aber ich hatte Probleme mit Java 8 in Projekten mit späteren Versionen von Scala (wahrscheinlich 2.11.7).