2

我正在努力让一个香草 Play 应用程序在我的 Windows 上运行(但希望不会持续太久!)开发机器。

我下载了 typesafe-stack 2.1 并使用推荐的 giterate 模板创建了一个基本的 Play 应用程序:

g8 typesafehub/play-scala.

然后我跑了sbt run,等待服务器启动,导航到localhost:9000并得到一个java.lang.ExceptionInInitializerErrorwith root cause MissingRequirementError: object scala not found

听起来像是一个类路径问题(?) - 但我不知道从哪里开始 1)我是 sbt、scala 和 play 的新手,以及 2)我在诊断和修复类路径问题方面很垃圾。所以我想我会在这里问,希望有人能给我指出一个有用的调查方向。

这是堆栈跟踪:

play.api.UnexpectedException: Unexpected exception [ExceptionInInitializerError: null]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$11.apply(PlayReloader.scala:228) ~[na:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2$$anonfun$apply$11.apply(PlayReloader.scala:221) ~[na:na]
        at scala.Option.map(Option.scala:133) ~[scala-library.jar:0.11.2]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2.apply(PlayReloader.scala:221) ~[na:na]
        at sbt.PlayReloader$$anon$2$$anonfun$reload$3$$anonfun$2.apply(PlayReloader.scala:219) ~[na:na]
        at scala.Either$LeftProjection.map(Either.scala:183) ~[scala-library.jar:0.11.2]
java.lang.ExceptionInInitializerError: null
        at play.templates.ScalaTemplateCompiler$TemplateAsFunctionCompiler$.getFunctionMapping(ScalaTemplates.scala:561) ~[templates_2.9.1-2.0.jar:2.0]
        at play.templates.ScalaTemplateCompiler$.generateFinalTemplate(ScalaTemplates.scala:500) ~[templates_2.9.1-2.0.jar:2.0]
        at play.templates.ScalaTemplateCompiler$.compile(ScalaTemplates.scala:189) ~[templates_2.9.1-2.0.jar:2.0]
        at sbt.PlayCommands$$anonfun$48$$anonfun$apply$38.apply(PlayCommands.scala:533) ~[na:na]
        at sbt.PlayCommands$$anonfun$48$$anonfun$apply$38.apply(PlayCommands.scala:531) ~[na:na]
        at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:60) ~[scala-library.jar:0.11.2]
Caused by: scala.tools.nsc.MissingRequirementError: object scala not found.
        at scala.tools.nsc.symtab.Definitions$definitions$.getModuleOrClass(Definitions.scala:655) ~[scala-compiler.jar:na]
        at scala.tools.nsc.symtab.Definitions$definitions$.getModule(Definitions.scala:605) ~[scala-compiler.jar:na]
        at scala.tools.nsc.symtab.Definitions$definitions$.ScalaPackage(Definitions.scala:145) ~[scala-compiler.jar:na]
        at scala.tools.nsc.symtab.Definitions$definitions$.ScalaPackageClass(Definitions.scala:146) ~[scala-compiler.jar:na]
        at scala.tools.nsc.symtab.Definitions$definitions$.AnyClass(Definitions.scala:176) ~[scala-compiler.jar:na]
        at scala.tools.nsc.symtab.Definitions$definitions$.init(Definitions.scala:814) ~[scala-compiler.jar:na]

注意:其他人已经在这里提出了完全相同的问题,但由于“不太可能帮助任何未来的访问者”而将其关闭。由于我是一位未来的访客,他会发现这个问题的答案非常有帮助,我觉得自己再问一次是有道理的。

谢谢!

4

2 回答 2

0

在通过 Typesafe Stack 安装 Play 2.0 时,您不是我听说的第一个抱怨的人。我自己没有时间进行调查,但我知道通过Play 2.0 文档安装 Play 2.0应该可以避免上述问题。

我的另一个想法是您正在发行sbt而不是play. 当然,它们几乎是同一个应用程序,但我希望您的sbt命令指向 的实例sbt,而play可能指向具有不同类路径的单独可执行文件。

于 2012-04-19T16:30:23.423 回答
0

为了将来参考,我发现自己在将 play 2.0.4 与 eclipse 结合使用时遇到了类似的问题。

我通过添加解决了这个问题

  <classpathentry path="<myProjectDirectory>\target\scala-2.9.1\classes_managed" kind="lib"></classpathentry>

<myProjectDirectory>/.classpath

我不知道如何,但不知何故,这条线被删除了......

于 2013-02-27T10:23:54.630 回答