685 [main] INFO org.apache.cassandra.cql.jdbc.CassandraConnection - 使用Keyspace演示和CQL版本2.0.0连接到localhost:9160 连接的 ABC 线程“main”java.lang.NoSuchFieldError:schema中的异常 在org.apache.cassandra.cql.jdbc.CassandraResultSet。(CassandraResultSet.java:121) 在org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:167) 在org.apache.cassandra.cql.jdbc.CassandraStatement.executeQuery(CassandraStatement.java:227) 在App.main(App.java:32)
这是代码:
try
{
Class.forName("org.apache.cassandra.cql.jdbc.CassandraDriver");
Connection conn = DriverManager.getConnection("jdbc:cassandra://localhost:9160/demo");
if (conn != null)
{
System.out.println("Connected");
}
//String sql = "INSERT INTO employee (eid,eadd,ename,esal,sex) VALUES (2499,'bangalore','amit',10000,'male')";
Statement stmt = conn.createStatement();
//stmt.execute(sql);
System.out.println("ABC");
String sql="select * from employee";
ResultSet rs=stmt.executeQuery(sql);
//System.out.println(rs);
//System.out.println("value inserted");
while(rs.next())
{
System.out.println("id="+rs.getString(1));
System.out.println();
}
}
答案 0 :(得分:2)
NoSuchMethod 。即,当您使用jar构建项目并使用不同版本的jar运行应用程序时。
检查版本是否相同。
人们常犯的错误是,将Jars添加到Project以在eclipse中构建路径,并再次在Server Lib中添加jar。这有时候容易受到罐子冲突的影响。
为你问题。你可以做两件事
从项目构建路径和服务器路径中删除Cassandra Jar。并在两个地方放置一个干净的同一个罐子。
从构建路径和服务器路径中删除所有jar。将所有JARS放在WEB-INF / lib文件夹中。现在您的应用程序非常便于携带。
答案 1 :(得分:0)
是的@madhairsilence是正确的,你有一个与它编译的jar不兼容的jar。重新开始或检查jar文件的版本,因为你有两个不兼容的jar(它们没有相互编译,但是使用不同版本的jar编译)。