5

我尝试使用 play 2.5.12 升级到响应式 mongo 0.12.1,但是当我运行 JVM 时退出我并得到以下堆栈跟踪:

由于 ActorSystem [application] java.lang.NoClassDefFoundError: play/api 启用了“akka.jvm-exit-on-fatal-error”,线程 [application-akka.actor.default-dispatcher-2] 中未捕获的错误正在关闭 JVM /libs/concurrent/StateMachine at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:763) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java .net.URLClassLoader.defineClass(URLClassLoader.java:467) 在 java.net.URLClassLoader.access$100(URLClassLoader.java:73) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:368) 在 java.net。 URLClassLoader$1.run(URLClassLoader.java:362) 在 java.lang.ClassLoader 的 java.net.URLClassLoader.findClass(URLClassLoader.java:361) 的 java.security.AccessController.doPrivileged(Native Method)。loadClass(ClassLoader.java:424) at java.lang.ClassLoader.loadClass(ClassLoader.java:357) at play.api.libs.streams.impl.EnumeratorSubscriptionFactory$class.createSubscription(EnumeratorPublisher.scala:25) at play.api .libs.streams.impl.EnumeratorPublisher.createSubscription(EnumeratorPublisher.scala:33) 在 play.api.libs.streams.impl.EnumeratorPublisher.createSubscription(EnumeratorPublisher.scala:33) 在 play.api.libs.streams.impl.RelaxedPublisher .subscribe(RelaxedPublisher.scala:19) at akka.stream.impl.MaterializerSession.akka$stream$impl$MaterializerSession$$doSubscribe(StreamLayout.scala:1033) at akka.stream.impl.MaterializerSession.assignPort(StreamLayout.scala: 1025)在akka.stream.impl.MaterializerSession$$anonfun$exitScope$2.apply(StreamLayout.scala:907)在akka.stream.impl.MaterializerSession$$anonfun$exitScope$2。apply(StreamLayout.scala:906) at scala.collection.Iterator$class.foreach(Ite​​rator.scala:893) at scala.collection.AbstractIterator.foreach(Ite​​rator.scala:1336) at akka.stream.impl.MaterializerSession.exitScope (StreamLayout.scala:906) 在akka.stream.impl.MaterializerSession$$anonfun$materializeModule$1.apply(StreamLayout.scala:958) 在akka.stream.impl.MaterializerSession$$anonfun$materializeModule$1.apply(StreamLayout.scala :950) at scala.collection.immutable.Set$Set3.foreach(Set.scala:163) at akka.stream.impl.MaterializerSession.materializeModule(StreamLayout.scala:950) at akka.stream.impl.MaterializerSession.materialize( StreamLayout.scala:917) at akka.stream.impl.ActorMaterializerImpl.materialize(ActorMaterializerImpl.scala:256) at akka.stream.impl.ActorMaterializerImpl.materialize(ActorMaterializerImpl.scala:146) atakka.stream。scaladsl.RunnableGraph.run(Flow.scala:350) at akka.stream.scaladsl.Source.runWith(Source.scala:81) at play.core.server.netty.NettyModelConversion.play$core$server$netty$NettyModelConversion$ $createChunkedResponse(NettyModelConversion.scala:256) at play.core.server.netty.NettyModelConversion$$anonfun$convertResult$1.apply(NettyModelConversion.scala:189) at play.core.server.netty.NettyModelConversion$$anonfun$convertResult$1 .apply(NettyModelConversion.scala:166) at play.core.server.common.ServerResultUtils$.resultConversionWithErrorHandling(ServerResultUtils.scala:127) at play.core.server.netty.NettyModelConversion.convertResult(NettyModelConversion.scala:235) .core.server.netty.PlayRequestHandler$$anonfun$play$core$server$netty$PlayRequestHandler$$handleAction$2$$anonfun$apply$3.apply(PlayRequestHandler.scala:273) 在 play.core.server.netty.PlayRequestHandler$$anonfun$play$core$server$netty$PlayRequestHandler$$handleAction$2$$anonfun$apply$3.apply(PlayRequestHandler.scala:267) 在 scala.concurrent.Future $$anonfun$flatMap$1.apply(Future.scala:253) at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251) at scala.concurrent.impl.CallbackRunnable.run(Promise.scala :32) 在 play.api.libs.iteratee.Execution$trampoline$.executeScheduled(Execution.scala:110) 在 play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70) 在 scala。 concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40) 在 scala.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248) 在 scala.concurrent.Promise$class.complete(Promise.scala:55)在 scala.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153) 在 scala.concurrent.Future$$anonfun$andThen$1.apply(Future.scala:436) 在 scala.concurrent.Future$$anonfun$andThen$1.apply(Future.scala:435) 在 scala.concurrent.impl .CallbackRunnable.run(Promise.scala:32) at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55) atakka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply$mcV$sp(BatchingExecutor .scala:91) 在 akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91) 在 akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91) ) at scala.concurrent.BlockContext$.withBlockContext(BlockContext.scala:72) at akka.dispatch.BatchingExecutor$BlockableBatch.run(BatchingExecutor.scala:90) at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39) at阿卡。dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260) at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)在 scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 在 scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 引起:java.lang.ClassNotFoundException: play.api.libs.concurrent .StateMachineforkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 引起:java.lang.ClassNotFoundException: play.api.libs.concurrent.StateMachineforkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107) 引起:java.lang.ClassNotFoundException: play.api.libs.concurrent.StateMachine

任何帮助将不胜感激!

4

1 回答 1

7

在检查了依赖关系图(https://github.com/jrudolph/sbt-dependency-graph)之后,最终对我有用的是从 ReactiveMongo 中排除 play-iteratees。

在我的 build.sbt 中,将导入更改为:

"org.reactivemongo" %% "play2-reactivemongo" % reactiveMongoVersion excludeAll( ExclusionRule("com.typesafe.play", "play-iteratees_2.11")
于 2017-03-21T13:04:44.947 回答