Ошибка файла конфигурации Ammonite и Akka-Http

Я пытаюсь встроить сервер akka-http в свой скрипт аммонита scala.

Ниже приведен код Scala, используемый для создания экземпляра сервера.

import ammonite.ops._

import $ivy.`com.typesafe:config:1.3.1`
import $ivy.`com.typesafe.akka:akka-http_2.12:10.0.6`
import akka.actor.ActorSystem
import akka.stream.ActorMaterializer
import akka.http.scaladsl.Http
import akka.http.scaladsl.server.Directives._
import com.typesafe.config.ConfigFactory
import java.io._

@main
def main() = {
  val fileConfig = ConfigFactory.parseFile(new File("resources/my.conf"))
  val config = ConfigFactory.load(fileConfig)

  println(config)

  implicit val actorSystem = ActorSystem("system")
  implicit val actorMaterializer = ActorMaterializer()

  val route =
    pathSingleSlash {
      get {
        complete {
          "Hello world"
        }
      }
    }
  Http().bindAndHandle(route,"localhost",8080)
  println("server started at 8080")
}

Вот содержимое файла my.conf:

akka {
  loglevel = INFO
  stdout-loglevel = INFO
  default-dispatcher {
    fork-join-executor {
      parallelism-min = 8
    }
}

Запустив скрипт с amm server.sc, я получил следующую ошибку:

Exception in thread "main" com.typesafe.config.ConfigException$Missing: No configuration setting found for key 'akka'

То же самое происходит и со стандартным application.conf соглашением об именах файлов.

Я могу прочитать файл и правильно понять его содержимое. Что мне не хватает?

Большое спасибо


person mvito    schedule 11.05.2017    source источник


Ответы (1)


Вам нужно передать конфигурацию в ActorSystem, например ActorSystem("system", config)

person Stephen    schedule 11.05.2017
comment
спасибо большое, полезно. Зачем сейчас ищет весь набор опций конфигурации для акка? (например, диспетчер логгеров, сериализация сообщений, тайм-аут unstarted-push, ....) Если я не предоставлю весь набор, он не будет работать - person mvito; 11.05.2017