Play 2.0意外异常StackOverflowError:null

时间:2012-11-19 09:44:21

标签: scala playframework playframework-2.0

当我尝试编译项目时,我得到以下异常:

! Internal server error, for request [GET /] ->

play.api.UnexpectedException: Unexpected exception [StackOverflowError: null]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$4$$anonfun$apply$12.apply(PlayReloader.scala:233) ~[na:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$4$$anonfun$apply$12.apply(PlayReloader.scala:226) ~[na:na]
    at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.3]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$4.apply(PlayReloader.scala:226) ~[na:na]
    at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$4.apply(PlayReloader.scala:224) ~[na:na]
    at scala.Either$LeftProjection.map(Either.scala:183) ~[scala-library.jar:0.11.3]
java.lang.StackOverflowError: null
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:731) ~[scala-compiler.jar:na]
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4271) ~[scala-compiler.jar:na]
    at scala.tools.nsc.typechecker.Typers$Typer.typed1(Typers.scala:4138) ~[scala-compiler.jar:na]
    at scala.tools.nsc.transform.Erasure$Eraser.typed1(Erasure.scala:731) ~[scala-compiler.jar:na]
    at scala.tools.nsc.typechecker.Typers$Typer.typed(Typers.scala:4271) ~[scala-compiler.jar:na]
    at scala.tools.nsc.typechecker.Typers$Typer$$anonfun$typedApply$1$1.apply(Typers.scala:3353) ~[scala-compiler.jar:na]

我在Play 2问题跟踪器中发现了相同的issue,他们说当路由文件增长时会出现异常。

是否存在此异常的解决方案,因为我的项目不再编译?

我正在使用Play 2.0.3进行scala(我的路径文件大约是150行)

2 个答案:

答案 0 :(得分:2)

我在Play 2.0.6中遇到了同样的问题。升级到Play 2.0.8并没有帮助。然后我修改了 $ play_dir / framework / build 脚本,使其用 -Xss2M 而不是 -Xss1M 构建,问题就消失了(我可以编译)通常现在)。

答案 1 :(得分:0)

play 2.0中存在一个与路径文件大小有关的错误,而不是路由数量,而是文件的物理大小(32768字节)。似乎这个cieling已经增加了2.0.4并且被2.1消除了。

https://groups.google.com/forum/?fromgroups=#!topic/play-framework/fZvgWJoCPLc

所以,首先,我将看一下routes文件的物理大小。可能会删除注释和/或消除注释掉的行。接下来,我会尝试升级到2.0.4版。这是一个相当简单的过程。您只需要下载2.0.4,将play指向此新路径,然后将项目的/project/plugins.sbt更新为:

// Use the Play sbt plugin for Play projects
addSbtPlugin("play" % "sbt-plugin" % "2.0.4")

更长期的修复可能是在项目稳定后将项目升级到2.1。