2016-10-26 5 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() 

여러 마커 : 당신은 구성에 기능 Config => Configuration를 캐스팅하려고

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 

:

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

다음은 무엇을하고 있는지의 그림입니다.

Play's documentation을 보면 Configuration 인스턴스를 얻기위한 여러 가지 대안을 찾을 수 있습니다.

일 수 있습니다.