2017-01-16 8 views
0

カサンドラを完全に新しくしました。 phantom-dslを使用してカサンドラのデータベースを初期化しようとしました。私はこのエラーメッセージを受け取りました。カサンドラのデータベースの自動初期化でアサーションに失敗しました

*** RUN ABORTED *** 
    java.lang.AssertionError: assertion failed: no symbol could be loaded from class com.datastax.driver.core.Cluster in package core with name Cluster and classloader [email protected] 
    at scala.reflect.runtime.JavaMirrors$JavaMirror.scala$reflect$runtime$JavaMirrors$JavaMirror$$classToScala1(JavaMirrors.scala:1021) 
    at scala.reflect.runtime.JavaMirrors$JavaMirror$$anonfun$classToScala$1.apply(JavaMirrors.scala:980) 
    at scala.reflect.runtime.JavaMirrors$JavaMirror$$anonfun$classToScala$1.apply(JavaMirrors.scala:980) 
    at scala.reflect.runtime.JavaMirrors$JavaMirror$$anonfun$toScala$1.apply(JavaMirrors.scala:97) 
    at scala.reflect.runtime.TwoWayCaches$TwoWayCache$$anonfun$toScala$1.apply(TwoWayCaches.scala:39) 
    at scala.reflect.runtime.Gil$class.gilSynchronized(Gil.scala:19) 
    at scala.reflect.runtime.JavaUniverse.gilSynchronized(JavaUniverse.scala:16) 
    at scala.reflect.runtime.TwoWayCaches$TwoWayCache.toScala(TwoWayCaches.scala:34) 
    at scala.reflect.runtime.JavaMirrors$JavaMirror.toScala(JavaMirrors.scala:95) 
    at scala.reflect.runtime.JavaMirrors$JavaMirror.classToScala(JavaMirrors.scala:980) 

私はそれがphantom-dslConnectorまたはdatastax-driverClusterBuilderとの問題であるかどうか、本当にわかりません。

Connector.scala

package com.neruti.db 

import com.neruti.db.models._ 

import com.websudos.phantom.database.Database 
import com.websudos.phantom.connectors.ContactPoints 
import com.websudos.phantom.dsl.KeySpaceDef 

object Connector { 

    val host= Seq("localhost") 
    val port = 9160 
    val keySpace: String = "nrt_entities" 
    // val inet = InetAddress.getByName 

    lazy val connector = ContactPoints(host,port).withClusterBuilder(
    _.withCredentials("cassandra", "cassandra") 

).keySpace(keySpace) 

} 

CassandraSpec.scala

package com.neruti.db 

import com.neruti.User 
import com.neruti.db.models._ 
import com.neruti.db.databases._ 
import com.neruti.db.services._ 
import com.neruti.db.Connector._ 

import java.util.UUID 

import com.datastax.driver.core.ResultSet 
import org.scalatest._ 
import org.scalatest.{BeforeAndAfterAll,FlatSpec,Matchers,ShouldMatchers} 
import org.scalatest.concurrent.ScalaFutures 
import org.scalamock.scalatest.MockFactory 
import scala.concurrent.duration._ 
import scala.concurrent.{Await, Future} 
import scala.concurrent.ExecutionContext.Implicits.global 


abstract class BaseCassandraSpec extends FlatSpec 
with BeforeAndAfterAll 
with Inspectors 
with Matchers 
with OptionValues 
with ScalaFutures 

class CassandraTest extends BaseCassandraSpec 
with ProductionDatabase 
with UserService 
with Connector.connector.Connector{ 

     val user = User(
      Some("foobar"), 
      Some("[email protected]"), 
      Some(UUID.randomUUID()), 
     ) 


override protected def beforeAll(): Unit = { 
    Await.result(database.userModel.create(user),10.seconds) 
    } 
} 

答えて

0

は、あなたが見ている複数の問題があるかもしれないルックス:ファントムの最新バージョン

2.1です.3、私は強くそれを使用することをお勧めしたいと思いますt。必要に応じて、移行ガイドはhereです。

最新のバージョンでは反射機構がすべて置き換えられているので、エラーは魔法のように消えるはずです。テストに関してとオブジェクトを生成し、私もcom.outworkers.util.testingが含まれるようになり、Mavenの中央に自由に利用可能である

libraryDependencies ++= Seq(
    //.., 
    "com.outworkers" %% "phantom-dsl" % "2.1.3", 
    "com.outworkers" %% "util-testing" % "0.30.1" % Test 
) 

これはあなたに自動化されたケースクラスの生成を提供します:

import com.outworkers.util.testing._ 

val sample = gen[User] 
関連する問題