685 [main] INFO org.apache.cassandra.cql.jdbc.CassandraConnection - Connected to localhost:9160 using Keyspace demo and CQL version 2.0.0 Connected ABC Exception in thread "main" java.lang.NoSuchFieldError: schema at org.apache.cassandra.cql.jdbc.CassandraResultSet.(CassandraResultSet.java:121) at org.apache.cassandra.cql.jdbc.CassandraStatement.doExecute(CassandraStatement.java:167) at org.apache.cassandra.cql.jdbc.CassandraStatement.executeQuery(CassandraStatement.java:227) at 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();
}
}
最佳答案
NoSuchMethod 当你有 jar 冲突时出现。即当您使用 jar 构建项目并使用不同版本的 jar 运行应用程序时。
检查版本是否相同。
人们常犯的错误是,将 Jars 添加到项目中以在 Eclipse 中构建路径,然后再次在 Server Lib 中添加 jar。这有时容易受到 jar 冲突的影响。
给你的问题。你可以做两件事
从项目构建路径和服务器路径中删除 Cassandra Jar。并在这两个地方放置一个干净的同一个 jar 。
从构建路径和服务器路径中删除所有 jar。将所有 JAR 放在 WEB-INF/lib 文件夹中。现在您的应用程序具有很好的可移植性。
关于java - 我正在尝试以下代码,但它显示异常 :java. lang.NoSuchFieldError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13247619/