2016-10-26 3 views
0

Я пытаюсь использовать объект play.api.Configuration, чтобы избавиться от предупреждения устареванияКласса исключение отлитого в Скале играть

import com.datastax.driver.core.Cluster 
import com.datastax.driver.core.policies.ConstantReconnectionPolicy 
import play.api.Play.current 
import play.libs.Akka 

import scala.concurrent.ExecutionContext 
import scala.collection.JavaConverters._ 
import play.api.Configuration 
import javax.inject.Inject 

object TestClient { 

    val config = new Configuration(_) 

private val nodes = config.asInstanceOf[Configuration].getStringList("Test_ENDPOINT").map(_.asScala.toList).getOrElse(List("127.0.0.1")) 

} 

когда я запускаю мое приложение, я получаю ошибку

Caused by: java.lang.ClassCastException: utils.TestClient$$anonfun$1 cannot be cast to play.api.Configuration 

Я не могу преобразовать этот объект в класс из-за зависимостей цепей. Ниже приведен полный список:

play.api.UnexpectedException: Unexpected exception[ExceptionInInitializerError: null] 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:184) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:131) 
    at scala.Option.map(Option.scala:146) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:131) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:129) 
    at scala.util.Success.flatMap(Try.scala:231) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:129) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1.apply(DevServerStart.scala:121) 
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.liftedTree1$1(Future.scala:24) 
    at scala.concurrent.impl.Future$PromiseCompletingRunnable.run(Future.scala:24) 
Caused by: java.lang.ExceptionInInitializerError: null 
    at Global$.onStart(Global.scala:10) 
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:111) 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:102) 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:102) 
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21) 
    at play.api.Play$.start(Play.scala:102) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:171) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:131) 
    at scala.Option.map(Option.scala:146) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1.apply(DevServerStart.scala:131) 
Caused by: java.lang.ClassCastException: utils.TestClient$$anonfun$1 cannot be cast to play.api.Configuration 
    at utils.TestClient$.<init>(TestClient.scala:17) 
    at utils.TestClient$.<clinit>(TestClient.scala) 
    at Global$.onStart(Global.scala:10) 
    at play.api.Play$$anonfun$start$1.apply$mcV$sp(Play.scala:111) 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:102) 
    at play.api.Play$$anonfun$start$1.apply(Play.scala:102) 
    at play.utils.Threads$.withContextClassLoader(Threads.scala:21) 
    at play.api.Play$.start(Play.scala:102) 
    at play.core.server.DevServerStart$$anonfun$mainDev$1$$anon$1$$anonfun$get$1$$anonfun$apply$1$$anonfun$1.apply(DevServerStart.scala:171) 

Также пробовал использовать конфигурационную нагрузку, но не работал.

val config = Configuration.load() 

Множественные маркеры на этой линии:

overloaded method value load with alternatives: (environment: play.api.Environment)play.api.Configuration <and> (environment: play.api.Environment,devSettings: Map[String,AnyRef])play.api.Configuration cannot be applied to() 
overloaded method value load with alternatives: (environment: play.api.Environment)play.api.Configuration <and> (environment: play.api.Environment,devSettings: Map[String,AnyRef])play.api.Configuration cannot be applied to() 
+0

Возможно, это как-то поможет. http://alvinalexander.com/scala/scala-how-open-read-files-scala-examples – sascha10000

+0

В чем вопрос? – pedrofurla

ответ

0

Вот иллюстрация того, что вы делаете:

scala> class Example(s:String) 
defined class Example 

scala> val c = new Config(_) 
c: String => Example = <function1> 

scala> c.asInstanceOf[Example] 
java.lang.ClassCastException: $anonfun$1 cannot be cast to Example 
    ... 42 elided 

Вы пытаетесь бросить функцию Config => Configuration в конфигурации.

Глядя на Play's documentation, вы найдете несколько альтернатив для получения экземпляра конфигурации.

может быть началом.