2014-11-04 1 views
3

Я создаю приложение для распыления в scala, и я следую примеру here, но когда я собираюсь скомпилировать i получить эту ошибкуIO (Http) является причиной ошибки «не удалось найти неявное значение для системы параметров: akka.actor.ActorSystem»

Error:(38, 7) could not find implicit value for parameter system: akka.actor.ActorSystem 
       IO(Http) ! Http.Bind(webServer, 
       ^

И поиск Google никогда не приведет меня где, вот код для моего приложения

package au.net.hivemedia.polydeploy 

import akka.actor.{Props, ActorRef, ActorSystem} 
import akka.io.IO 
import au.net.hivemedia.polydeploy.dono.http.WebServerActor 
import spray.can.Http 

/** 
* PolyDeploy Dono - Braeburn 
* 
* Copyright (c) Hive Media Production, 2014. 
* All rights reserved. Do not redistribute 
* 
*/ 
object App extends App { 

    final val VERSION = "1.0-SNAPSHOT" 
    final val CODENAME = "Twilight Sparkle" 

    private var instance: Dono = _ 
    private var actorSystem: ActorSystem = _ 
    private var webServer: ActorRef = _ 

    override def main(args: Array[String]) { 
    println("Starting PolyDeploy Dono v" + VERSION) 
    println("=+ Project Version Codename: " + CODENAME) 

    instance = new Dono() 
    println("=+ Loading required items into the runtime") 
    instance.load() 

    println("=+ Loading new Actor System") 
    actorSystem = ActorSystem("DonoActorSystem") 

    println("=+ Starting web interface server") 
    webServer = actorSystem.actorOf(Props[WebServerActor], name = "WebServer") 

    IO(Http) ! Http.Bind(webServer, 
         interface = instance.getConfiguration().getString("web-bind-host"), 
         port = instance.getConfiguration().getInt("web-bind-port")) 

    } 
} 

я могу размещать больше кода snipits при необходимости

Спасибо,

Лиам

+3

'IO.apply' принимает неявные' ActorSystem'. Либо сделайте 'actorSystem' неявным, используя' implicit var actorSytem', либо передайте 'actorSystem' явно как' IO (Http) (actorSystem) ' – mohit

+0

Спасибо @mohit, который работает плавно, если вы добавите его в качестве ответа, я буду отмечать его –

+0

Рад, что это было полезно :) – mohit

ответ

4

IO.apply принимает неявный ActorSystem. Либо сделайте actorSystem как неявный, используя implicit var actorSytem или пройдите actorSystem явно IO(Http)(actorSystem)

+0

Оглядываясь назад на этот пример кода, я вижу, что он имеет 'ActorSystem' как' implicit'. Только одна из тех вещей, которые вы не видите во время кодирования поздно ночью. Но опять же, спасибо! : D –