невозможно создать объект конфигурации - PullRequest
2 голосов
/ 22 марта 2019

Я хочу создать следующую конфигурацию в коде.

mail{
  signupUrl = "/test/ws/users/signup/"
  signupFrom="Test<mailrobot@test.com>"
  signupReply="Test<noreply@test.comm>"

}

Я пробовал следующие два способа, но получаю ошибки

Попытка 1. API (https://www.playframework.com/documentation/2.6.x/api/scala/index.html#play.api.Configuration$)имеет метод from, который принимает Map.

val mailConfig = Map("signupUrl" -> "/test/ws/users/signup/",
        "signupFrom"->"Test<mailrobot@test.com>",
        "signupReply"->"Test<noreply@test.comm>")
      val newConfig = Configuration.from(Map("mail"->mailConfig))
      val newConfiguration = Configuration(newConfig)

Ошибка

Error:(575, 30) overloaded method value apply with alternatives:
  (underlying: com.typesafe.config.Config)play.api.Configuration <and>
  (data: (String, Any)*)play.api.Configuration
 cannot be applied to (play.api.Configuration)
      val newConfiguration = Configuration(newConfig)

Попытка 2 - API (https://www.playframework.com/documentation/2.6.x/api/scala/index.html#play.api.Configuration$) имеет метод apply, которыйзанимает (String,any*)

 val mailConfig = ("signupUrl" -> "/test/ws/users/signup/",
        "signupFrom"->"Test<mailrobot@test.com>",
        "signupReply"->"Test<noreply@test.comm>")
      val newConfig = ("mail"->mailConfig)
      val newConfiguration = Configuration(newConfig)

Ошибка

bug in method caller: not valid to create ConfigValue from: ((signupUrl,/test/ws/users/signup/),(signupFrom,Test<mailrobot@test.com>),(signupReply,Test<noreply@test.comm>))

1 Ответ

0 голосов
/ 22 марта 2019

Ваша первая версия работает, если вы просто удалите последнюю строку, например:

val mailConfig = Map("signupUrl" -> "/test/ws/users/signup/",
        "signupFrom"->"Test<mailrobot@test.com>",
        "signupReply"->"Test<noreply@test.comm>")
      val newConfig = Configuration.from(Map("mail"->mailConfig))

val newConfig: Configuration = Configuration.from(Map("mail"->mailConfig))

уже возвращает конфигурацию.

Если вы хотитеСоздайте конфигурацию из key -> value пар, вам нужно:

  • Поместите пары в Seq
  • Преобразуйте Seq в varargs (:_*).

Вот пример:

val mailConfig = Seq("signupUrl" -> "/test/ws/users/signup/",
      "signupFrom"->"Test<mailrobot@test.com>",
      "signupReply"->"Test<noreply@test.comm>")
    val newConfiguration = Configuration(mailConfig: _*)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...