Reactivemon go parseURI завершается ошибкой при загрузке из конфигурации, говоря, что не может найти неявное значение для загрузчика параметров MongoConnection.ParsedURI - PullRequest
1 голос
/ 27 февраля 2020

Я пытаюсь использовать драйвер реактивный go в моем приложении воспроизведения, не используя модуль воспроизведения для реактивного мон go.

Поэтому, когда я пытаюсь получить parsedURI из моей конфигурации, я получить следующую ошибку:

import reactivemongo.api.MongoConnection.ParsedURI
import reactivemongo.api.AsyncDriver
import com.typesafe.config.Config


val driver = new AsyncDriver(Some(config.get[Config]("mongodb")))
val parsedUri = config.get[ParsedURI]("mongodb.uri")

Сообщение об ошибке:

не удалось найти неявное значение для загрузчика параметров: play.api.ConfigLoader [реактивный_им * go .api.MongoConnection. ParsedURI] [ошибка] val parsedUri = config.getParsedURI [ошибка] ^ [ошибка] найдена одна ошибка

Мой application.conf имеет:

mongodb {
  uri = "mongodb://127.0.0.1:27017/mydb"
  mongo-async-driver = ${akka}
}

1 Ответ

0 голосов
/ 27 февраля 2020

ConfigLoader - это класс типа Play (например, Reads), который сообщает play, как читать тип из файла конфигурации.

Вы можете найти объяснение здесь: https://www.playframework.com/documentation/2.8.x/ScalaConfig#ConfigLoader

Как правило, вы можете определить это, выполнив что-то вроде:

// Config
{
  config {
    url = "https://example.com"
  }
}

// Config class
case class AConfig(url: String)

// Config Loader
implicit val configLoader: ConfigLoader[AConfig] = ConfigLoader {root => key =>
  val config = root.getConfig(key)
  AConfig(config.get[String]("url"))
}

// Usage
val aConfig = config.get[AConfig]("config")

В этом случае я бы не советовал пытаться сделать его для ParsedURI, потому что это довольно сложный тип. Вместо этого я бы предложил сделать что-то вроде:

val parsedUri: Try[ParsedURI] = MongoConnection.parseURI(config.get[String]("mongodb.uri"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...