小编Ric*_*ood的帖子

通过ByteBuffer和CQL 3将Java对象序列化为Cassandra 1.2

我拼凑了下面没有做任何复杂事情的代码 - 只创建一个byte []变量,将其写入Cassandra(v1.2,通过新的Datastax CQL库)的blob字段中,然后将其读回再来一次.

当我把它放在它的3个元素长,当我读回它时,它是84个元素长...!这意味着我实际上尝试做的事情(序列化Java对象)org.apache.commons.lang.SerializationException: java.io.StreamCorruptedException: invalid stream header: 81000008在尝试再次反序列化时失败并出现错误.

这是一些演示我的问题的示例代码:

import java.nio.ByteBuffer;

import org.apache.commons.lang.SerializationUtils;

import com.datastax.driver.core.BoundStatement;
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Host;
import com.datastax.driver.core.Metadata;
import com.datastax.driver.core.PreparedStatement;
import com.datastax.driver.core.ResultSet;
import com.datastax.driver.core.Row;
import com.datastax.driver.core.Session;

public class TestCassandraSerialization {


    private Cluster cluster;
    private Session session;

    public TestCassandraSerialization(String node) {
        connect(node);
    }

    private void connect(String node) {
        cluster = Cluster.builder().addContactPoint(node).build();
        Metadata metadata = cluster.getMetadata();
        System.out.printf("Connected to %s\n", metadata.getClusterName());
        for (Host host: metadata.getAllHosts()) {
              System.out.printf("Datacenter: %s; Host: %s; Rack: %s\n",
                         host.getDatacenter(), host.getAddress(), host.getRack()); …
Run Code Online (Sandbox Code Playgroud)

java serialization cassandra

15
推荐指数
2
解决办法
8219
查看次数

标签 统计

cassandra ×1

java ×1

serialization ×1