Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/thrift/transport/ttTransportException_Java_Exception_Cassandra_Hector - Fatal编程技术网

“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/thrift/transport/ttTransportException

“线程中的异常”;“主要”;java.lang.NoClassDefFoundError:org/apache/thrift/transport/ttTransportException,java,exception,cassandra,hector,Java,Exception,Cassandra,Hector,我是Cassandra的新手,我正在尝试使用Eclipse中的以下程序创建一个列和超级列系列: import java.util.Arrays; import java.util.List; import me.prettyprint.cassandra.model.BasicColumnDefinition; import me.prettyprint.cassandra.model.BasicColumnFamilyDefinition; import me.prettyprint.cas

我是Cassandra的新手,我正在尝试使用Eclipse中的以下程序创建一个列和超级列系列:

import java.util.Arrays;
import java.util.List;

import me.prettyprint.cassandra.model.BasicColumnDefinition;
import me.prettyprint.cassandra.model.BasicColumnFamilyDefinition;
import me.prettyprint.cassandra.serializers.StringSerializer;
import me.prettyprint.cassandra.service.ThriftCfDef;
import me.prettyprint.hector.api.Cluster;
import me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
import me.prettyprint.hector.api.ddl.ColumnIndexType;
import me.prettyprint.hector.api.ddl.ColumnType;
import me.prettyprint.hector.api.ddl.ComparatorType;
import me.prettyprint.hector.api.ddl.KeyspaceDefinition;
import me.prettyprint.hector.api.exceptions.HectorException;
import me.prettyprint.hector.api.factory.HFactory;

public class HectorTutorial {

    private static final String TEST_KEYSPACE = "TestKeyspace";
    private static final String TEST_CF= "TestColumnFamily";
    private static final String TEST_SUPER= "TestSuperColumn";

    private static StringSerializer stringSerializer = StringSerializer.get();

    public static void main(String[] args) throws Exception {

        Cluster cluster = HFactory.getOrCreateCluster("TestCluster", "localhost:9160");

        try {
            if ( cluster.describeKeyspace(TEST_KEYSPACE ) != null ) {
              cluster.dropKeyspace(TEST_KEYSPACE );
            }

            BasicColumnDefinition columnDefinition = new BasicColumnDefinition();
            columnDefinition.setName(stringSerializer.toByteBuffer("TestColumn"));
            columnDefinition.setIndexName("TestColumn_idx ");
            columnDefinition.setIndexType(ColumnIndexType.KEYS);
            columnDefinition.setValidationClass(ComparatorType.LONGTYPE.getClassName());

            BasicColumnFamilyDefinition columnFamilyDefinition = new BasicColumnFamilyDefinition();
            columnFamilyDefinition.setKeyspaceName(TEST_KEYSPACE );
            columnFamilyDefinition.setName(TEST_CF);
            columnFamilyDefinition.addColumnDefinition(columnDefinition);

            BasicColumnFamilyDefinition superCfDefinition = new BasicColumnFamilyDefinition();
            superCfDefinition.setKeyspaceName(TEST_KEYSPACE );
            superCfDefinition.setName(TEST_SUPER);
            superCfDefinition.setColumnType(ColumnType.SUPER);

            ColumnFamilyDefinition cfDefStandard = new ThriftCfDef(columnFamilyDefinition);
            ColumnFamilyDefinition cfDefSuper = new ThriftCfDef(superCfDefinition);

            KeyspaceDefinition keyspaceDefinition = 
                HFactory.createKeyspaceDefinition(TEST_KEYSPACE , "org.apache.cassandra.locator.SimpleStrategy", 
                    1, Arrays.asList(cfDefStandard, cfDefSuper));

            cluster.addKeyspace(keyspaceDefinition);

           /* Below Code show your Keyspace Schema */

            List<KeyspaceDefinition> keyspaces = cluster.describeKeyspaces();
            for (KeyspaceDefinition kd : keyspaces) {
                if ( kd.getName().equals(TEST_KEYSPACE ) ) {
                    System.out.println("Name: " +kd.getName());
                    System.out.println("RF: " +kd.getReplicationFactor());
                    System.out.println("strategy class: " +kd.getStrategyClass());
                    List<ColumnFamilyDefinition> cfDefs = kd.getCfDefs();
                    for (ColumnFamilyDefinition def : cfDefs) {
                      System.out.println("  CF Type: " +def.getColumnType());
                      System.out.println("  CF Name: " +def.getName());
                      System.out.println("  CF Metadata: " +def.getColumnMetadata());  
                    }                                        
                } 
            }                        
        } catch (HectorException he) {
            he.printStackTrace();
        }
        cluster.getConnectionManager().shutdown(); 
    }
}
导入java.util.array;
导入java.util.List;
导入me.prettyprint.cassandra.model.BasicColumnDefinition;
导入me.prettyprint.cassandra.model.BasicColumnFamilyDefinition;
导入me.prettyprint.cassandra.serializers.StringSerializer;
导入me.prettyprint.cassandra.service.ThriftCfDef;
导入me.prettyprint.hector.api.Cluster;
导入me.prettyprint.hector.api.ddl.ColumnFamilyDefinition;
导入me.prettyprint.hector.api.ddl.ColumnIndexType;
导入me.prettyprint.hector.api.ddl.ColumnType;
导入me.prettyprint.hector.api.ddl.ComparatorType;
导入me.prettyprint.hector.api.ddl.KeyspaceDefinition;
导入me.prettyprint.hector.api.exceptions.hector异常;
导入me.prettyprint.hector.api.factory.HFactory;
公务舱{
私有静态最终字符串测试\u KEYSPACE=“TestKeyspace”;
私有静态最终字符串测试\u CF=“TestColumnFamily”;
私有静态最终字符串测试\u SUPER=“TestSuperColumn”;
私有静态StringSerializer StringSerializer=StringSerializer.get();
公共静态void main(字符串[]args)引发异常{
Cluster Cluster=HFactory.getOrCreateCluster(“TestCluster”,“localhost:9160”);
试一试{
if(cluster.descripebeKeySpace(TEST_KEYSPACE)!=null){
cluster.dropKeyspace(TEST_KEYSPACE);
}
BasicColumnDefinition columnDefinition=新的BasicColumnDefinition();
columnDefinition.setName(stringSerializer.toByteBuffer(“TestColumn”));
columnDefinition.setIndexName(“TestColumn_idx”);
columnDefinition.setIndexType(ColumnIndexType.KEYS);
columnDefinition.setValidationClass(ComparatorType.LONGTYPE.getClassName());
BasicColumnFamilyDefinition columnFamilyDefinition=新的BasicColumnFamilyDefinition();
columnFamilyDefinition.setKeyspaceName(测试键空间);
columnFamilyDefinition.setName(TEST\u CF);
columnFamilyDefinition.addColumnDefinition(columnDefinition);
BasicColumnFamilyDefinition superFDDefinition=新的BasicColumnFamilyDefinition();
setKeyspaceName(TEST_KEYSPACE);
setName(TEST_SUPER);
setColumnType(ColumnType.SUPER);
ColumnFamilyDefinition cfDefStandard=新的节俭CFDEF(ColumnFamilyDefinition);
ColumnFamilyDefinition cfDefSuper=新的节俭CFDEF(超级定义);
KeyspaceDefinition KeyspaceDefinition=
createKeyspaceDefinition(TEST_KEYSPACE,“org.apache.cassandra.locator.SimpleStrategy”,
1,Arrays.asList(cfDefStandard,cfDefSuper));
cluster.addKeyspace(keyspaceDefinition);
/*下面的代码显示您的键空间模式*/
List keyspace=cluster.descripbekeyspace();
for(键空间定义kd:keyspace){
if(kd.getName().equals(TEST_KEYSPACE)){
System.out.println(“Name:+kd.getName());
System.out.println(“RF:+kd.getReplicationFactor());
System.out.println(“策略类:+kd.getStrategyClass());
List cfDefs=kd.getCfDefs();
对于(ColumnFamilyDefinition:cfDefs){
System.out.println(“CF类型:+def.getColumnType());
System.out.println(“CF Name:+def.getName());
System.out.println(“CF元数据:+def.getColumnMetadata());
}                                        
} 
}                        
}捕获(Hector例外he){
he.printStackTrace();
}
cluster.getConnectionManager().shutdown();
}
}
当我尝试执行该程序时,出现以下异常:

Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/thrift/transport/TTransportException
    at me.prettyprint.cassandra.connection.factory.HThriftClientFactoryImpl.createClient(HThriftClientFactoryImpl.java:28)
    at me.prettyprint.cassandra.connection.ConcurrentHClientPool.createClient(ConcurrentHClientPool.java:147)
    at me.prettyprint.cassandra.connection.ConcurrentHClientPool.<init>(ConcurrentHClientPool.java:53)
    at me.prettyprint.cassandra.connection.RoundRobinBalancingPolicy.createConnection(RoundRobinBalancingPolicy.java:67)
    at me.prettyprint.cassandra.connection.HConnectionManager.<init>(HConnectionManager.java:67)
    at me.prettyprint.cassandra.service.AbstractCluster.<init>(AbstractCluster.java:67)
    at me.prettyprint.cassandra.service.ThriftCluster.<init>(ThriftCluster.java:21)
    at me.prettyprint.hector.api.factory.HFactory.createCluster(HFactory.java:197)
    at me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster(HFactory.java:144)
    at me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster(HFactory.java:133)
    at HectorTutorial.main(HectorTutorial.java:27)
Caused by: java.lang.ClassNotFoundException: org.apache.thrift.transport.TTransportException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
线程“main”java.lang.NoClassDefFoundError中的异常:org/apache/thrift/transport/ttTransportException at me.prettyprint.cassandra.connection.factory.hthriftclientfactorympl.createClient(hthriftclientfactorympl.java:28) at me.prettyprint.cassandra.connection.ConcurrentHClientPool.createClient(ConcurrentHClientPool.java:147) at me.prettyprint.cassandra.connection.ConcurrentHClientPool.(ConcurrentHClientPool.java:53) at me.prettyprint.cassandra.connection.roundRobinBalancenPolicy.createConnection(roundRobinBalancenPolicy.java:67) at me.prettyprint.cassandra.connection.HConnectionManager.(HConnectionManager.java:67) at me.prettyprint.cassandra.service.AbstractCluster.(AbstractCluster.java:67) at me.prettyprint.cassandra.service.ThriftCluster.(ThriftCluster.java:21) at me.prettyprint.hector.api.factory.HFactory.createCluster(HFactory.java:197) at me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster(HFactory.java:144) at me.prettyprint.hector.api.factory.HFactory.getOrCreateCluster(HFactory.java:133) 位于HectorTutorial.main(HectorTutorial.java:27) 原因:java.lang.ClassNotFoundException:org.apache.thrift.transport.ttTransportException 在java.net.URLClassLoader$1.run(URLClassLoader.java:217) 位于java.security.AccessController.doPrivileged(本机方法) 位于java.net.URLClassLoader.findClass(URLClassLoader.java:205) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:321) 位于sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294) 位于java.lang.ClassLoader.loadClass(ClassLoader.java:266)
我已经在类路径中包含了所有Hector api JAR,我不知道是什么导致了这个错误。有人能解释一下错误的原因吗?

看来您缺少了一些第三方库(在本例中,我相信其中包含
tttransport)