无法用cassandra开始titan - IllegalArgumentException

时间:2016-11-15 17:15:55

标签: java graph-databases titan illegalargumentexception

尝试使用以下代码启动titan:

 TitanFactory.Builder config = TitanFactory.build();
    config.set("storage.backend", "embeddedcassandra");
    config.set("storage.directory", DIRECTORY);
    graph = config.open();

但是,得到了以下例外。

  

线程中的异常" main" java.lang.IllegalArgumentException:无法实例化实现:   com.thinkaurelius.titan.diskstorage.cassandra.embedded.CassandraEmbeddedStoreManager         在com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:55)         在com.thinkaurelius.titan.diskstorage.Backend.getImplementationClass(Backend.java:473)         在com.thinkaurelius.titan.diskstorage.Backend.getStorageManager(Backend.java:407)         at com.thinkaurelius.titan.graphdb.configuration.GraphDatabaseConfiguration。(GraphDatabaseConfiguration.java:1320)         在com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:94)         在com.thinkaurelius.titan.core.TitanFactory.open(TitanFactory.java:84)         在com.thinkaurelius.titan.core.TitanFactory $ Builder.open(TitanFactory.java:139)         at main.java.com.bag.server.database.TitanDatabaseAccess.start(TitanDatabaseAccess.java:55)         在main.java.com.bag.server.TestServer。(TestServer.java:105)         在main.java.com.bag.server.TestServer.main(TestServer.java:429)         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)         at java.lang.reflect.Method.invoke(Method.java:498)         在com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)       引起:java.lang.reflect.InvocationTargetException         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)         at java.lang.reflect.Constructor.newInstance(Constructor.java:423)         在com.thinkaurelius.titan.util.system.ConfigurationUtil.instantiate(ConfigurationUtil.java:44)         ......还有14个       引起:java.lang.NoSuchMethodError:org.slf4j.helpers.MessageFormatter.format(Ljava / lang / String; Ljava / lang / Object;)Ljava / lang / String;         at org.slf4j.impl.JDK14LoggerAdapter.info(JDK14LoggerAdapter.java:303)         在com.thinkaurelius.titan.diskstorage.cassandra.utils.CassandraDaemonWrapper.start(CassandraDaemonWrapper.java:69)         在com.thinkaurelius.titan.diskstorage.cassandra.embedded.CassandraEmbeddedStoreManager。(CassandraEmbeddedStoreManager.java:81)         ......还有19个

尝试在Intellij的Linux上运行它 - java。

1 个答案:

答案 0 :(得分:0)

这可能是因为您尚未启动Embedded Cassandra。我认为泰坦不会自动为你做这件事。您可以使用以下命令启动嵌入式Cassandra:

EmbeddedCassandraServerHelper.startEmbeddedCassandra();
例如,

。或者

EmbeddedCassandraServerHelper.startEmbeddedCassandra("cassandra.yaml");

如果您要通过自定义配置。

修改

通过向项目添加以下依赖项,可以使用上面的帮助程序类:

<dependency>
    <groupId>org.cassandraunit</groupId>
    <artifactId>cassandra-unit</artifactId>
    <version>2.1.9.2</version>
</dependency>