【问题标题】:Problems with Compiling Play Application编译 Play 应用程序的问题
【发布时间】:2014-12-28 03:36:13
【问题描述】:

我在编译我的游戏框架应用程序时遇到了一些问题。有时应用程序运行良好,但大多数时候这些问题都发生在 sbt 和 activator 工具上。这是使用 sbt 编译我的应用程序的示例:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:8: error: cannot find symbol
[error] public static final controllers.ReverseAssets Assets = new controllers.ReverseAssets();
[error]                                ^
[error]   symbol:   class ReverseAssets
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:9: error: cannot find symbol
[error] public static final controllers.ReverseApplication Application = new controllers.ReverseApplication();
[error]                                ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:12: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseAssets Assets = new controllers.javascript.ReverseAssets();
[error]                                           ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication();
[error]                                           ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:18: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseAssets Assets = new controllers.ref.ReverseAssets();
[error]                                    ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:19: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseApplication Application = new controllers.ref.ReverseApplication();
[error]                                    ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:8: error: cannot find symbol
[error] public static final controllers.ReverseAssets Assets = new controllers.ReverseAssets();
[error]                                                                       ^
[error]   symbol:   class ReverseAssets
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:9: error: cannot find symbol
[error] public static final controllers.ReverseApplication Application = new controllers.ReverseApplication();
[error]                                                                                 ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:12: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseAssets Assets = new controllers.javascript.ReverseAssets();
[error]                                                                                             ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: package controllers.javascript does not exist
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication();
[error]                                                                                                       ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:18: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseAssets Assets = new controllers.ref.ReverseAssets();
[error]                                                                               ^
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:19: error: package controllers.ref does not exist
[error] public static final controllers.ref.ReverseApplication Application = new controllers.ref.ReverseApplication();
[error]                                                                                         ^
[error] 12 errors
[error] (compile:compile) javac returned nonzero exit code
[error] Total time: 16 s, completed Oct 31, 2014 11:18:25 AM

其他时候我会用 sbt clean compile 得到这个错误:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
[trace] Stack trace suppressed: run last compile:compile for the full output.
[error] (compile:compile) java.lang.NoClassDefFoundError: Lcontrollers/ReverseAssets;
[error] Total time: 45 s, completed Oct 31, 2014 11:45:49 AM

然后我将退出 sbt,然后再次运行 sbt clean compile,一切似乎都可以正常编译。我什至会运行 activator run 并且一切都编译得很好,但没有一个路由被识别:

# Home page
GET     /               controllers.Application.index

GET     /login          controllers.Application.login

然后我会在使用 activator run 编译时出错:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: cannot find symbol
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication()
[error]                                           ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers.javascript
[error] C:\Server\trunk\target\scala-2.11\src_managed\main\controllers\routes.java:13: error: cannot find symbol
[error] public static final controllers.javascript.ReverseApplication Application = new controllers.javascript.ReverseApplication()
[error]                                                                                                       ^
[error]   symbol:   class ReverseApplication
[error]   location: package controllers.javascript
[error] 2 errors
[error] (compile:compile) javac returned nonzero exit code
[error] application -

! @6k3l8fool - Internal server error, for (GET) [/] ->

play.PlayExceptions$CompilationException: Compilation error[error: cannot find symbol]
    at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
    at play.PlayExceptions$CompilationException$.apply(PlayExceptions.scala:27) ~[na:na]
    at scala.Option.map(Option.scala:145) ~[scala-library-2.11.1.jar:na]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:235) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:230) ~[na:na]
[warn] play - No application found at invoker init

然后我运行 activator clean run,我得到一个完全不同的错误:

[info] Compiling 15 Scala sources and 1 Java source to C:\Server\trunk\target\scala-2.11\classes...
java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Server\trunk\target\scala-2.11\classes\Routes$$anonfun$routes$1$$anonfun$applyOrElse$4.class' does not exist.
    at scala.Predef$.require(Predef.scala:233)
    at sbt.IO$.copyFile(IO.scala:580)
    at sbt.IO$.sbt$IO$$copyImpl(IO.scala:559)
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548)
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548)
    at scala.Function$$anonfun$tupled$1.apply(Function.scala:77)
    at scala.Function$$anonfun$tupled$1.apply(Function.scala:76)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.TraversableLike$$anonfun$map$1.apply(TraversableLike.scala:244)
    at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)
    at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)
    at scala.collection.TraversableLike$class.map(TraversableLike.scala:244)
    at scala.collection.AbstractTraversable.map(Traversable.scala:105)
    at sbt.IO$.copy(IO.scala:548)
    at play.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:162)
    at play.PlayCommands$$anonfun$PostCompile$1.apply(PlayCommands.scala:76)
    at scala.Function8$$anonfun$tupled$1.apply(Function8.scala:35)
    at scala.Function8$$anonfun$tupled$1.apply(Function8.scala:34)
    at scala.Function1$$anonfun$compose$1.apply(Function1.scala:47)
    at sbt.$tilde$greater$$anonfun$$u2219$1.apply(TypeFunctions.scala:42)
    at sbt.std.Transform$$anon$4.work(System.scala:64)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1$$anonfun$apply$1.apply(Execute.scala:237)
    at sbt.ErrorHandling$.wideConvert(ErrorHandling.scala:18)
    at sbt.Execute.work(Execute.scala:244)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.Execute$$anonfun$submit$1.apply(Execute.scala:237)
    at sbt.ConcurrentRestrictions$$anon$4$$anonfun$1.apply(ConcurrentRestrictions.scala:160)
    at sbt.CompletionService$$anon$2.call(CompletionService.scala:30)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
    at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at java.lang.Thread.run(Thread.java:744)
[error] (compile:compile) java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Server\AuthWebManager\trunk\target\scala-2.11\classes\Routes$$anonfun$routes$1$$anonfun$applyOrElse$4.
class' does not exist.
[error] application -

! @6k3l90dc5 - Internal server error, for (GET) [/] ->

play.PlayExceptions$UnexpectedException: Unexpected exception[IllegalArgumentException: requirement failed: Source file 'C:\Server\AuthWebManager\trunk\target\scala-2.11\classes\Routes$$anonfun$routes
$1$$anonfun$applyOrElse$4.class' does not exist.]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:237) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$play$PlayReloader$$anon$$taskFailureHandler$1.apply(PlayReloader.scala:230) ~[na:na]
    at scala.Option.map(Option.scala:145) ~[scala-library-2.11.1.jar:na]
    at play.PlayReloader$$anon$1.play$PlayReloader$$anon$$taskFailureHandler(PlayReloader.scala:230) ~[na:na]
    at play.PlayReloader$$anon$1$$anonfun$reload$2.apply(PlayReloader.scala:90) ~[na:na]
Caused by: java.lang.IllegalArgumentException: requirement failed: Source file 'C:\Server\trunk\target\scala-2.11\classes\Routes$$anonfun$routes$1$$anonfun$applyOrElse$4.class' does not
exist.
    at scala.Predef$.require(Predef.scala:233) ~[scala-library-2.11.1.jar:na]
    at sbt.IO$.copyFile(IO.scala:580) ~[na:na]
    at sbt.IO$.sbt$IO$$copyImpl(IO.scala:559) ~[na:na]
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548) ~[na:na]
    at sbt.IO$$anonfun$copy$1.apply(IO.scala:548) ~[na:na]
[warn] play - No application found at invoker init

我也遇到了一些不同的错误,但为了简洁起见,我不会在这里写出来。我已经尝试过删除 .sbt 和 .ivy2/cache 文件夹的建议,但这并没有解决问题。

那么我该怎么做才能让我的 play 应用程序编译和运行而不会出现看似不确定的错误?

【问题讨论】:

  • 当你把它添加到你的路由文件时会发生什么? GET /assets/*file controllers.Assets.at(path="/public", file)
  • 路由文件里已经有了,我只是没有在问题中添加
  • 那一行到底是什么?如果我没有编辑我的 application.conf 文件,这会是一个问题吗?
  • 对不起,错误的警报,实际上它应该在默认的情况下工作(所以当样本被评论时)
  • 您是否考虑过切换到 Spring?只是一个想法

标签: scala playframework playframework-2.0 sbt playframework-2.3


【解决方案1】:

我遇到了类似的问题。我正在使用带有激活器的eclipse。当它试图在与播放相同的导演中构建应用程序时,看起来问题出在 Eclipse 上。我从 Eclipse 中禁用了“自动构建”设置,到目前为止它工作正常。看看这个线程:

https://groups.google.com/forum/#!topic/play-framework/4RnbqEk-muM

【讨论】:

    【解决方案2】:

    我之前也遇到过类似的随机错误。 我已将其缩小为大量内存使用,因为完全相同的代码将在我们用于预测试调试的远程开发服务器上编译良好,如果我按顺序关闭打开的应用程序,它也将编译得很好并且没有随机错误为编译器保留足够的可用内存来完成工作。

    【讨论】:

    • 所以你是说如果我关闭其他打开的应用程序我的随机错误就会消失?
    • 我说检查你的空闲内存,如果你没有足够的内存,你可能会遇到这种问题,至少这是发生在我身上的事情。
    【解决方案3】:

    删除“目标”文件夹并再次运行,这对我有用:)!

    参考: https://groups.google.com/forum/#!topic/play-framework/915-PGT8Zgs

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-25
      • 2019-08-14
      • 1970-01-01
      • 1970-01-01
      • 2016-02-28
      • 1970-01-01
      • 2015-10-16
      • 1970-01-01
      相关资源
      最近更新 更多