Java.lang.RuntimeException: when starting a class from scala sheet

I wanted to test the class by running it from a scala sheet. When running this test script:

import ping.GcmRestServer val server = new GcmRestServer("AIzaSyCOn...") server.send(List("dcGKzDg5VOQ:APA91bHNUDaBj01th..."), Map( "message" -> "Test Message", "title" -> "Test Title" )) 

If the tested class is GcmRestServer

 package ping import play.api.Logger import play.api.libs.ws.WS import play.api.libs.json.Json /** * Created by Lukasz on 26.02.2016. */ class GcmRestServer(val key: String) { def send(ids: List[String], data: Map[String, String]) = { import play.api.Play.current import scala.concurrent.ExecutionContext.Implicits.global val body = Json.obj( "registration_ids" -> ids, "data" -> data ) WS.url("https://android.googleapis.com/gcm/send") .withHeaders( "Authorization" -> s"key=$key", "Content-type" -> "application/json" ) .post(body) .map { response => Logger.debug("Result: " + response.body)} } } 

It gives the following result:

 import ping.GcmRestServer server: ping.GcmRestServer = ping.GcmRestServer@34860db2 java.lang.RuntimeException: There is no started application at scala.sys.package$.error(test.sc2.tmp:23) at play.api.Play$$anonfun$current$1.apply(test.sc2.tmp:82) at play.api.Play$$anonfun$current$1.apply(test.sc2.tmp:82) at scala.Option.getOrElse(test.sc2.tmp:117) at play.api.Play$.current(test.sc2.tmp:82) at ping.GcmRestServer.send(test.sc2.tmp:16) at #worksheet#.get$$instance$$res0(test.sc2.tmp:4) at #worksheet#.#worksheet#(test.sc2.tmp:19) 

Can someone explain to me what I did wrong and how to fix it?

+6
source share
1 answer

The import play.api.Play.current requires a Play executable application.

I have never used scala worksheets, but this seems to be the same issue.

In tests, the solution should run a fake application, as recorded in the documentation .

+4
source

All Articles