Status 500 for Play Assets after upgrading to Akka 2.5.0

394 views
Skip to first unread message

Gavin Baumanis

unread,
Apr 19, 2017, 6:20:22 AM4/19/17
to Akka User List
Hi there everyone,

I am after some help please with the following...


I have upgraded from Akka 2.4.17 to 2.5.0
I have copy / pasted the reference configuration from the 2.5.0 documentation - completely replacing all 2.4.17 configuration.
And I have also read the 2.4 to 2.5 migration guide - but my issue doesn't seem to be covered in there.

Also - it seems to be a Play issue... but as I have only updated Akka not Play, here seemed appropriate - so I hope that's OK?

I am using;
* Scala 2.11.8
* Akka 2.5.0
* Akka HTTP 10.0.5

The only change I have made is to upgrade Akka and replace the Akka configuration files.

As a result of the upgrade my app throws a 500 error when attempting to load any fixed / public asset.

An example of what is causing the error is below;

<script src = "@routes.Assets.at("javascripts/jquery/jquery-3.1.1.min.js")"></script>



which causes the following stack trace;

19:59:20.319 [application-akka.actor.default-dispatcher-5] - [error] - application -


! @73lillnl9 - Internal server error, for (GET) [/assets/javascripts/jquery/jquery-3.1.1.min.js] ->


play
.api.http.HttpErrorHandlerExceptions$$anon$1: Execution exception[[RuntimeException: java.lang.NoClassDefFoundError: akka/stream/stage/StatefulStage]]
 at play
.api.http.HttpErrorHandlerExceptions$.throwableToUsefulException(HttpErrorHandler.scala:293)
 at play
.api.http.DefaultHttpErrorHandler.onServerError(HttpErrorHandler.scala:220)
 at play
.api.GlobalSettings$class.onError(GlobalSettings.scala:160)
 at play
.api.DefaultGlobal$.onError(GlobalSettings.scala:188)
 at play
.api.http.GlobalSettingsHttpErrorHandler.onServerError(HttpErrorHandler.scala:100)
 at play
.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:100)
 at play
.core.server.netty.PlayRequestHandler$$anonfun$2$$anonfun$apply$1.applyOrElse(PlayRequestHandler.scala:99)
 at scala
.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:346)
 at scala
.concurrent.Future$$anonfun$recoverWith$1.apply(Future.scala:345)
 at scala
.concurrent.impl.CallbackRunnable.run(Promise.scala:32)
 at play
.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70)
 at scala
.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40)
 at scala
.concurrent.impl.Promise$DefaultPromise.tryComplete(Promise.scala:248)
 at scala
.concurrent.Promise$class.complete(Promise.scala:55)
 at scala
.concurrent.impl.Promise$DefaultPromise.complete(Promise.scala:153)
 at scala
.concurrent.Promise$class.failure(Promise.scala:104)
 at scala
.concurrent.impl.Promise$DefaultPromise.failure(Promise.scala:153)
 at scala
.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:257)
 at scala
.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:251)
 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(BatchingExecutor.scala:90)
 at akka
.dispatch.TaskInvocation.run(AbstractDispatcher.scala:38)
 at akka
.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(ForkJoinExecutorConfigurator.scala:43)
 at akka
.dispatch.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)
 at akka
.dispatch.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)
 at akka
.dispatch.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)
 at akka
.dispatch.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)
Caused by: java.lang.RuntimeException: java.lang.NoClassDefFoundError: akka/stream/stage/StatefulStage
 at play
.api.mvc.ActionBuilder$$anon$2.apply(Action.scala:463)
 at play
.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:112)
 at play
.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5$$anonfun$apply$6.apply(Action.scala:112)
 at play
.utils.Threads$.withContextClassLoader(Threads.scala:21)
 at play
.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:111)
 at play
.api.mvc.Action$$anonfun$apply$2$$anonfun$apply$5.apply(Action.scala:110)
 at scala
.Option.map(Option.scala:146)
 at play
.api.mvc.Action$$anonfun$apply$2.apply(Action.scala:110)
 at play
.api.mvc.Action$$anonfun$apply$2.apply(Action.scala:103)
 at scala
.concurrent.Future$$anonfun$flatMap$1.apply(Future.scala:253)
 
... 14 common frames omitted
Caused by: java.lang.NoClassDefFoundError: akka/stream/stage/StatefulStage
 at controllers
.AssetsBuilder$$anonfun$19.apply(Assets.scala:448)
 at controllers
.AssetsBuilder$$anonfun$19.apply(Assets.scala:436)
 at 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)
 at play
.api.libs.iteratee.Execution$trampoline$.execute(Execution.scala:70)
 at scala
.concurrent.impl.CallbackRunnable.executeWithValue(Promise.scala:40)
 at scala
.concurrent.impl.Promise$DefaultPromise.scala$concurrent$impl$Promise$DefaultPromise$$dispatchOrAddCallback(Promise.scala:280)
 at scala
.concurrent.impl.Promise$DefaultPromise.onComplete(Promise.scala:270)
 at scala
.concurrent.Future$class.flatMap(Future.scala:251)
 at scala
.concurrent.impl.Promise$DefaultPromise.flatMap(Promise.scala:153)
 at controllers
.AssetsBuilder.controllers$AssetsBuilder$$assetAt(Assets.scala:436)
 at controllers
.AssetsBuilder$$anonfun$at$1.apply(Assets.scala:424)
 at controllers
.AssetsBuilder$$anonfun$at$1.apply(Assets.scala:423)
 at play
.api.mvc.Action$.invokeBlock(Action.scala:498)
 at play
.api.mvc.Action$.invokeBlock(Action.scala:495)
 at play
.api.mvc.ActionBuilder$$anon$2.apply(Action.scala:458)
 
... 23 common frames omitted
Caused by: java.lang.ClassNotFoundException: akka.stream.stage.StatefulStage
 at java
.net.URLClassLoader.findClass(URLClassLoader.java:381)
 at java
.lang.ClassLoader.loadClass(ClassLoader.java:424)
 at java
.lang.ClassLoader.loadClass(ClassLoader.java:357)
 
... 40 common frames omitted


As always - thanks very much...


Johannes Rudolph

unread,
Apr 19, 2017, 6:54:57 AM4/19/17
to Akka User List
Hi Gavin,

the current version of Play is not compatible with Akka 2.5.0. This has already been fixed for the upcoming Play 2.6 series. I created a ticket to investigate if the compatibility fix should be backported to Play 2.5.x as well: https://github.com/playframework/playframework/issues/7251

Johannes

Gavin Baumanis

unread,
Apr 19, 2017, 7:03:26 AM4/19/17
to Akka User List
Awesome - thanks very much for the reply Johannes.
Good to know it's not me!

-Gavin
Reply all
Reply to author
Forward
0 new messages