2013-07-15 111 views
3

我得到每次我修改我的代碼,而應用程序在開發模式下運行,並導致代碼重新編譯服務器請求時,出現以下異常自動重新編譯期間NullPointerException異常。如果我退出播放控制檯並再次啓動,一切正常......直到下一次需要重新編譯爲止。這似乎在項目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) 
+1

更多詳情請。播放版本? OS?使用IDE啓用自動構建? – Max

+0

在Windows 8上播放版本是2.1.2,並且我禁用了IDE(Eclipse)中的自動構建。 (更新了問題以包含此信息。) – mhusaini

+0

@mhusaini嘗試一個'play clean'命令,看看它是如何工作的。 – kingdamian42

回答

1

看起來好像你在某個地方有一個腐敗的罐子。重新安裝Play將刷新Play正在使用的所有Jars。

0

我有同樣的錯誤 (我甚至創造了GitHub上https://github.com/playframework/playframework/issues/4525發揮的問題)

後來我發現我的情況的解決方案:

在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。