0

对 Cassandra 来说是全新的。尝试在 Cassandra 中使用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 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)

我不确定是否是Connectorinphantom-dslClusterBuilderin的问题datastax-driver

连接器.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("foo@foobar.com"), 
          Some(UUID.randomUUID()),
          )


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

1 回答 1

0

看起来您可能正在查看多个问题:

phantom 的最新版本是 2.1.3,我强烈建议您使用它,特别是如果您刚刚开始。迁移指南在这里,以备不时之需。

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

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]
于 2017-01-17T14:22:20.140 回答