简体   繁体   中英

unable to create Configuration object

I want to create the following configuration in code.

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

}

I tried the following two ways but am getting errors

Attempt 1. The API ( https://www.playframework.com/documentation/2.6.x/api/scala/index.html#play.api.Configuration $) has a from method which takes a 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

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)

Attempt 2 - The API ( https://www.playframework.com/documentation/2.6.x/api/scala/index.html#play.api.Configuration $) has apply method which takes (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)

Error

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>))

Your first version works if you just remove the last lin, like:

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))

already returns a Configuration.

If you want to create the Configuration from key -> value pairs, you need:

  • Put the pairs in a Seq
  • Transform the Seq to varargs ( :_* ).

Here the example:

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM