java - Cassandra 的节俭运输异常(exception)

标签 java exception cassandra thrift

我在使用 cassandra 和 thrift 时发生了异常。我想插入一些数据。这是java代码:

package pacan.java.eee;
import java.nio.ByteBuffer;
import org.apache.cassandra.thrift.Cassandra;
import org.apache.cassandra.thrift.Column;
import org.apache.cassandra.thrift.ColumnParent;
import org.apache.cassandra.thrift.ConsistencyLevel;
import org.apache.cassandra.thrift.InvalidRequestException;
import org.apache.cassandra.thrift.NotFoundException;
import org.apache.cassandra.thrift.TBinaryProtocol;
import org.apache.cassandra.thrift.TimedOutException;
import org.apache.cassandra.thrift.UnavailableException;
import org.apache.thrift.TException;
import org.apache.thrift.protocol.TProtocol;
import org.apache.thrift.transport.TFramedTransport;
import org.apache.thrift.transport.TSocket;
import org.apache.thrift.transport.TTransport;

public class Main {

    private static final String UTF8 = "UTF8";

    /**
     * @param args
     * @throws TException 
     * @throws InvalidRequestException 
     * @throws NotFoundException 
     * @throws TimedOutException 
     * @throws UnavailableException 
     */
    public static void main(String[] args) throws InvalidRequestException, TException, NotFoundException, UnavailableException, TimedOutException {
        TTransport tr = new TFramedTransport(new TSocket("localhost", 7199));
        TProtocol protocol = new TBinaryProtocol(tr);
        Cassandra.Client client = new Cassandra.Client(protocol);
        tr.open();
        client.set_keyspace("keyspace");
        ColumnParent colParent = new ColumnParent("User");
        ByteBuffer rowid = ByteBuffer.wrap("100".getBytes());
        Column column = new Column();
        column.setName("description".getBytes());
        column.setValue("some value".getBytes());
        column.setTimestamp(System.currentTimeMillis());
        client.insert(rowid, colParent, column, ConsistencyLevel.ONE);
        tr.flush();
        tr.close();
    }

}

这是我遇到的异常:

Exception in thread "main" org.apache.thrift.transport.TTransportException
    at org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
    at org.apache.thrift.transport.TFramedTransport.readFrame(TFramedTransport.java:129)
    at org.apache.thrift.transport.TFramedTransport.read(TFramedTransport.java:101)
    at org.apache.thrift.transport.TTransport.readAll(TTransport.java:84)
    at org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:378)
    at org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:297)
    at org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:204)
    at org.apache.thrift.TServiceClient.receiveBase(TServiceClient.java:69)
    at org.apache.cassandra.thrift.Cassandra$Client.recv_set_keyspace(Cassandra.java:493)
    at org.apache.cassandra.thrift.Cassandra$Client.set_keyspace(Cassandra.java:480)
    at pacan.java.eee.Main.main(Main.java:37)

请帮忙! =) 我已经用谷歌搜索过了,但找不到答案。

最佳答案

  • 您是否定义/创建了名为“keyspace”的键空间?
  • 您确定您在端口 7199(默认为 9160)上运行 thrift/rpc。

关于java - Cassandra 的节俭运输异常(exception),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14049767/

相关文章:

java - 多态性和instanceof

java - Apache common SimplexSolver ObjectiveFunction 用于最大化矩阵中值的总和

C# 将文件中的加密数据传递到内存流中。抛出异常

cassandra - 使用 IN 运算符在 cassandra cql 表中删除

c++ - 编译 C++ Thrift 代码以连接 Cassandra 会导致以下错误。我们在这里缺少什么?

Cassandra 指定分区键时查询集合

java - 正则表达式匹配单词结尾

java - AWS SDK 2 承担角色

c++ - 如何在不使用异常的情况下检查 constructor() 中的失败?

c# - 意外的本地路径作为来自远程服务器的异常消息的一部分