【发布时间】:2016-10-12 12:50:13
【问题描述】:
我正在尝试通过 Java 与我的 Cassandra 实例建立简单的连接。我为 cqlsh 创建了一个“演示”键空间,并在 java 程序中创建了一个表。代码如下:
import com.datastax.driver.core.Cluster;
import com.datastax.driver.core.Session;
import java.lang.*;
import java.io.*;
public class GettingStarted {
public static void main(String args[])
{
Cluster clusters;
Session sessions;
clusters =Cluster.builder().addContactPoint("127.0.0.1").build();
sessions =clusters.connect("demo");
String query ="CREATE TABLE emp(emp_id int PRIMARY KEY, emp_name text, emp_city text, emp_sal int, emp_phone varint);";
sessions.execute(query);
System.out.println("table created");
}
}
我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory
at com.datastax.driver.core.Cluster.<clinit>(Cluster.java:63)
at GettingStarted.main(GettingStarted.java:12)
Caused by: java.lang.ClassNotFoundException: org.slf4j.LoggerFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 2 more
我错过了什么?代码中没有可见的错误。
添加 SLF4J jar 文件后的错误:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
Exception in thread "main" java.lang.NoClassDefFoundError: com/google/common/util/concurrent/FutureCallback
at com.datastax.driver.core.Cluster.<init>(Cluster.java:89)
at com.datastax.driver.core.Cluster.buildFrom(Cluster.java:145)
at com.datastax.driver.core.Cluster$Builder.build(Cluster.java:981)
at GettingStarted.main(GettingStarted.java:12)
Caused by: java.lang.ClassNotFoundException: com.google.common.util.concurrent.FutureCallback
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
... 4 more
【问题讨论】:
-
听起来你在运行时的类路径中没有 SLF4J。
-
我已经添加了 SLF4J api jar 文件..但它仍然显示一些错误..
-
你现在看到了什么异常?
-
添加 SLF4j jar 文件后,我已针对错误编辑了我的帖子..
-
那是因为你的类路径中没有 Guava。您是否考虑过使用 Maven 等依赖管理器?如果没有,您需要手动将驱动程序的所有依赖项添加到您的类路径中。