2016-11-16 20 views
0

我正在嘗試使用Datomisca的get started,但入門代碼的結果爲NoSuchMethodError嘗試在Datomisca中添加Datomisca架構的結果NoSuchMethodError

下面是一個複製它的小型片段。

package tw.txstream.flinktest 

import scala.concurrent.ExecutionContext.Implicits.global 
import datomisca._ 

object DatomicTest { 

    def main(args: Array[String]){ 
    val uri = "datomic:dev://localhost:4334/test" 

    // ensure clean DB 
    println("Deleted DB? " + Datomic.deleteDatabase(uri)) 
    println("Created DB? " + Datomic.createDatabase(uri)) 
    implicit val conn = Datomic.connect(uri) 

    Datomic.transact(Schema.txDataA) map { tx => 
     println("Transacted") 
    } 
    } 
} 

object Schema { 
    object ns { 
    val ns1 = Namespace("ns1") 
    } 
    val attr1 = Attribute(
    ns.ns1/"attr1", 
    SchemaType.string, 
    Cardinality.one 
).withDoc("attr1") 

    val ident1 = AddIdent(ns.ns1/"ident1") 
    val txDataA: Seq[TxData] = Seq(attr1) 
    val txDataB: Seq[TxData] = Seq(ident1) 
} 

的例外,我得到:

Exception in thread "main" java.lang.NoSuchMethodError: scala.Predef$.ArrowAssoc(Ljava/lang/Object;)Ljava/lang/Object; 
    at datomisca.Attribute.toAddOps$lzycompute(Attribute.scala:80) 
    at datomisca.Attribute.toAddOps(Attribute.scala:78) 
    at datomisca.Attribute.toTxData(Attribute.scala:98) 
    at datomisca.Connection$$anonfun$transact$extension$1.apply(Connection.scala:152) 
    at datomisca.Connection$$anonfun$transact$extension$1.apply(Connection.scala:151) 
    at scala.collection.immutable.List.foreach(List.scala:318) 
    at datomisca.Connection$.transact$extension(Connection.scala:151) 
    at datomisca.TransactOps$class.transact(TransactOps.scala:53) 
    at datomisca.Datomic$.transact(Datomic.scala:31) 

交易的Schema.txDataB代替Schema.txDataA但工作正常。所以看起來這個錯誤與Datomisca的Attribute()有關。

什麼問題,以及如何解決這個問題?

回答

0

這是一個scala版本問題。

本來,我用了以下內容:

<dependency> 
     <groupId>com.github.dwhjames</groupId> 
     <artifactId>datomisca_2.11</artifactId> 
     <version>0.7.0</version> 
    </dependency> 

更改artifactId爲 「datomisca_2.10」 固定對我來說。