首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Cassandra中自动初始化数据库的断言失败

在Cassandra中自动初始化数据库的断言失败
EN

Stack Overflow用户
提问于 2017-01-16 09:28:36
回答 1查看 130关注 0票数 0

对卡桑德拉来说是全新的。尝试使用phantom-dsl初始化Cassandra中的数据库。我收到了这条错误消息。

代码语言:javascript
复制
*** 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 sun.misc.Launcher$AppClassLoader@279f2327
  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)

我不太确定这是Connector in phantom-dsl还是ClusterBuilder in datastax-driver的问题。

Connector.scala

代码语言:javascript
复制
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

代码语言:javascript
复制
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("foo@foobar.com"), 
          Some(UUID.randomUUID()),
          )


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

回答 1

Stack Overflow用户

发布于 2017-01-17 14:22:20

看起来,您可能会看到多个问题:

幻影的最新版本是2.1.3,我强烈建议您使用它,特别是当您刚刚开始使用的时候。迁移指南是here,以防您需要它。

整个反射机制已在最新版本中被替换,因此错误会神奇地消失。关于测试和生成对象,我还希望包括com.outworkers.util.testing,它在Maven Central上是免费的

代码语言:javascript
复制
libraryDependencies ++= Seq(
  //..,
  "com.outworkers" %% "phantom-dsl" % "2.1.3",
  "com.outworkers" %% "util-testing" % "0.30.1" % Test
)

这将为您提供自动的案例类生成:

代码语言:javascript
复制
import com.outworkers.util.testing._

val sample = gen[User]
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41673090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档