使用Cassandra集成点燃

时间:2017-05-30 05:26:16

标签: c++ cassandra ignite

我正在尝试将Ignite与Cassandra整合在一起。我使用持久性策略作为BLOB。当我运行该程序时,它显示一个错误,例如" com.datastax.driver.core.exceptions.CodecNotFoundException:找不到请求操作的编解码器:[varchar< - > java.nio.HeapByteBuffer]在com.datastax.driver.core.CodecRegistry.notFound(CodecRegistry.java:679) "

这是我的持久性xml文件

<persistence keyspace="sam" table="key">
<keyPersistence class="java.lang.String" strategy="BLOB" column="key"/>
<valuePersistence class="java.lang.String" strategy="BLOB" column="value"/>
</persistence>

的main.cpp

int main()
{
IgniteConfiguration cfg;
cfg.springCfgPath = "apache-ignite-fabric-2.0.0-bin/cassandra-config.xml";
Ignite grid = Ignition::Start(cfg);
Cache<Test, Test> cache = grid.GetCache<Test, Test>("cache1");
Test obj;
cache.LoadCache ();
Test key;
key.key = "123dfsdfs";
obj.value = "sdfsf";
cache.Put (key,obj);
return 0;
}

1 个答案:

答案 0 :(得分:1)

错误意味着Cassandra中的列类型为varchar,但您正在尝试将BLOB写入其中。因此失败了。

但为什么要对字符串使用BLOB策略?您可以使用varchar策略将字符串原样写入PRIMITIVE列。