【发布时间】:2017-07-09 18:39:56
【问题描述】:
我尝试使用 play 2.5.12 升级到响应式 mongo 0.12.1,但是当我运行 JVM 时退出我并得到以下堆栈跟踪:
由于 ActorSystem[application] java.lang.NoClassDefFoundError 启用了“akka.jvm-exit-on-fatal-error”,线程 [application-akka.actor.default-dispatcher-2] 关闭 JVM 的未捕获错误: play/api/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 ) 在 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.security.AccessController.doPrivileged(Native Method) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:361) 在 java.lang.ClassLoader.loadClass( ClassLoader.java:424) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:357) 在 play.api.libs.streams.impl.EnumeratorSubscriptionFactory$class .createSubscription(EnumeratorPublisher.scala:25) 在 play.api.libs.streams.impl.EnumeratorPublisher.createSubscription(EnumeratorPublisher.scala:33) 在 play.api.libs.streams.impl.EnumeratorPublisher.createSubscription(EnumeratorPublisher.scala:33) ) at 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) at akka.stream.impl.MaterializerSession$$anonfun$exitScope$2.apply(StreamLayout.scala:907) atakka.stream.impl.MaterializerSession$$anonfun$ exitScope$2.apply(StreamLayout.scala:906) at scala.collection.Iterator$class.foreach(Iterator.scala:893) at scala.collection.AbstractIterator.foreach(Iterator.scala:1336) at akka.stream.impl。 MaterializerSession.exitScope(StreamLayout.scala:906) at akka.stream.impl.MaterializerSession$$anonfun$materializeModule$1.appl y(StreamLayout.scala:958) at akka.stream.impl.MaterializerSession$$anonfun$materializeModule$1.apply(StreamLayout.scala:950) at scala.collection.immutable.Set$Set3.foreach(Set.scala:163)在 akka.stream.impl.MaterializerSession.materializeModule(StreamLayout.scala:950) 在 akka.stream.impl.MaterializerSession.materialize(StreamLayout.scala:917) 在 akka.stream.impl.ActorMaterializerImpl.materialize(ActorMaterializerImpl.scala:256 )在 akka.stream.impl.ActorMaterializerImpl.materialize(ActorMaterializerImpl.scala:146) 在 akka.stream.scaladsl.RunnableGraph.run(Flow.scala:350) 在 akka.stream.scaladsl.Source.runWith(Source.scala: 81)在 play.core.server.netty.NettyModelConversion.play$core$server$netty$NettyModelConversion$$createChunkedResponse(NettyModelConversion.scala:256) 在 play.core.server.netty.NettyModelConversion$$anonfun$convertResult$1.apply (NettyModelConversion.scala:189) 在 play.core.server.netty.NettyModelConversion$$anonfun$convertResult$1.apply(NettyModelC onversion.scala:166) 在 play.core.server.common.ServerResultUtils$.resultConversionWithErrorHandling(ServerResultUtils.scala:127) 在 play.core.server.netty.NettyModelConversion.convertResult(NettyModelConversion.scala:235) 在 play.core。 server.netty.PlayRequestHandler$$anonfun$play$core$server$netty$PlayRequestHandler$$handleAction$2$$anonfun$apply$3.apply(PlayRequestHandler.scala:273) at play.core.server.netty.PlayRequestHandler$$anonfun $play$core$server$netty$PlayRequestHandler$$handleAction$2$$anonfun$apply$3.apply(PlayRequestHandler.scala:267) at scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:253)在 scala.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251) 在 scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) 在 play.api.libs.iteratee.Execution$trampoline $.executeScheduled(Execution.scala:110) at play.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70) at scala.concurrent.impl.CallbackRunnable.executeWith值(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) at scala.concurrent.Future$$anonfun$andThen$1.apply(Future.scala:436) at scala.concurrent.Future$$anonfun$andThen$1.apply(Future .scala:435) at scala.concurrent.impl.CallbackRunnable.run(Promise.scala:32) at akka.dispatch.BatchingExecutor$AbstractBatch.processBatch(BatchingExecutor.scala:55) at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun $run$1.apply$mcV$sp(BatchingExecutor.scala:91) at akka.dispatch.BatchingExecutor$BlockableBatch$$anonfun$run$1.apply(BatchingExecutor.scala:91) at 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(Batching Executor.scala:90) at akka.dispatch.TaskInvocation.run(AbstractDispatcher.scala:39) at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:415) at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask .java:260) 在 scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979) 在 scala.concurrent.forkjoin.ForkJoinWorkerThread 的 scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)。 run(ForkJoinWorkerThread.java:107) 引起:java.lang.ClassNotFoundException: play.api.libs.concurrent.StateMachine
任何帮助将不胜感激!
【问题讨论】:
-
确保提取的 Iteratees 依赖项没有问题。 ReactiveMongo for Play 希望它由 Play 本身提供,从 2.4 到 2.6。
-
谢谢。这正是问题所在!我最终从 reactivemongo 中排除了 iteratees - "org.reactivemongo" %% "play2-reactivemongo" % reactiveMongoVersion excludeAll( ExclusionRule("com.typesafe.play", "play-iteratees_2.11") // 这是需要的 - 否则版本2.6.1 覆盖一切并杀死游戏),
-
Play ReactiveMongo 已经排除了播放依赖,所以这应该不是原因
标签: mongodb scala playframework playframework-2.0 play-reactivemongo