3

每次在应用程序以开发模式运行时对代码进行更改并发出导致代码重新编译的服务器请求时,我都会收到以下异常。如果我退出播放控制台并重新启动它,一切正常......直到下一次它必须重新编译。项目 jar 文件似乎有一些问题,但除此之外我真的无法弄清楚。我在 Windows 8 上使用 Play 2.1.2,并且在 IDE (Eclipse) 中禁用了自动构建。

我应该注意,我最近不得不切换到一台速度较慢的机器,而我以前没有遇到过这种情况。据我所知,设置没有区别。

java.lang.NullPointerException:
    java.util.zip.ZipFile.getZipEntry(Unknown Source)
    java.util.zip.ZipFile.access$900(Unknown Source)
    java.util.zip.ZipFile$1.nextElement(Unknown Source)
    java.util.zip.ZipFile$1.nextElement(Unknown Source)
    java.util.jar.JarFile$1.nextElement(Unknown Source)
    java.util.jar.JarFile$1.nextElement(Unknown Source)
    org.reflections.vfs.ZipDir$1$1.computeNext(ZipDir.java:35)
    org.reflections.vfs.ZipDir$1$1.computeNext(ZipDir.java:33)
    com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
    com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
    org.reflections.Reflections.scan(Reflections.java:165)
    org.reflections.Reflections.<init>(Reflections.java:94)
    play.libs.Classpath.getReflections(Classpath.java:48)
    play.libs.Classpath.getTypes(Classpath.java:25)
    play.db.ebean.EbeanPlugin.onStart(EbeanPlugin.java:62)
    play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:68)
    play.api.Play$$anonfun$start$1$$anonfun$apply$mcV$sp$1.apply(Play.scala:68)
    scala.collection.immutable.List.foreach(List.scala:309)
    play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:68)
    play.api.Play$$anonfun$start$1.apply(Play.scala:68)
    play.api.Play$$anonfun$start$1.apply(Play.scala:68)
    play.utils.Threads$.withContextClassLoader(Threads.scala:18)
    play.api.Play$.start(Play.scala:67)
    play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:141)
    play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(ApplicationProvider.scala:114)
    scala.Option.map(Option.scala:145)
    play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:114)
    play.core.ReloadableApplication$$anonfun$get$1$$anonfun$apply$1.apply(ApplicationProvider.scala:112)
    scala.util.Either$RightProjection.flatMap(Either.scala:523)
    play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:112)
    play.core.ReloadableApplication$$anonfun$get$1.apply(ApplicationProvider.scala:104)
    scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24)
    scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24)
    java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
    java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
    java.lang.Thread.run(Unknown Source)
4

2 回答 2

1

好像你在某个地方有一个损坏的 Jar。重新安装 Play 将刷新 Play 正在使用的所有 Jar。

于 2013-07-27T21:21:11.290 回答
0

我有同样的错误(我什至在 github https://github.com/playframework/playframework/issues/4525上创建了 play 的问题)

后来我找到了适合我的案例的解决方案:

在 build.sbt 我有选项:

// SECTION: Build package configuration
serverLoading in Debian  := SystemV
maintainer in Debian  := "me"
packageSummary in Debian  := "App"
packageDescription := "App"
exportJars := true
defaultLinuxInstallLocation := "/var"
// /SECTION: Build package configuration

如果我删除 exportJars 参数,我的应用在 Windows 上感觉很好。

于 2015-05-21T13:23:03.707 回答