2

私は自分の Windows でバニラの Play アプリを実行しようとして髪を引き裂いています (しかし、それ以上長くは続かないことを願っています!) dev マシン。

typesafe-stack 2.1 をダウンロードし、推奨される giterate テンプレートを使用して基本的な Play アプリケーションを作成しました。

g8 typesafehub/play-scala.

次に、実行sbt runしてサーバーが起動するのを待ち、に移動して根本原因localhost:9000を取得します。java.lang.ExceptionInInitializerErrorMissingRequirementError: 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

将来の参考のために、私は、日食と組み合わせてplay2.0.4を使用して同様の問題を抱えていることに気づきました。

追加して問題を解決しました

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

<myProjectDirectory>/.classpath

方法はわかりませんが、どういうわけかこの行が削除されました...

于 2013-02-27T10:23:54.630 に答える
0

Typesafe Stack 経由で Play 2.0 をインストールする際に不平を言っていると聞いたのは、あなたが初めてではありません。私は自分で調査する時間がありませんでしたが、 Play 2.0 のドキュメントから Play 2.0 をインストールすることで上記の問題を回避できることを直接知っています。

私が持っているもう1つの考えは、あなたがsbt代わりに発行しているということですplay。確かに、それらはほとんど同じアプリケーションですが、sbtコマンドが のインスタンスを指しているのsbtに対し、playは別のクラスパスを持つ別の実行可能ファイルを指している可能性が高いと思います。

于 2012-04-19T16:30:23.423 に答える