java - 线程中的异常 "main"java.lang.NoSuchMethodError : com. ibatis.common.beans.ClassInfo.setCacheEnabled(Z)V

标签 java eclipse ibatis

我正在尝试使用 iBatis 开发桌面应用程序。但我遇到了以下错误。无法在网上找到正确的解决方案。请任何人帮助我。

日志::

Exception in thread "main" java.lang.NoSuchMethodError: com.ibatis.common.beans.ClassInfo.setCacheEnabled(Z)V
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser$3.process(SqlMapConfigParser.java:179)
at com.ibatis.common.xml.NodeletParser.processNodelet(NodeletParser.java:112)
at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:75)
at com.ibatis.common.xml.NodeletParser.process(NodeletParser.java:93)
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:63)
at com.ibatis.common.xml.NodeletParser.parse(NodeletParser.java:51)
at com.ibatis.sqlmap.engine.builder.xml.SqlMapConfigParser.parse(SqlMapConfigParser.java:86)
at com.ibatis.sqlmap.client.SqlMapClientBuilder.buildSqlMapClient(SqlMapClientBuilder.java:63)
at IbatisInsert.main(IbatisInsert.java:12)

代码::IbatisInsert.java

import com.ibatis.common.resources.Resources;
import com.ibatis.sqlmap.client.SqlMapClient;
import com.ibatis.sqlmap.client.SqlMapClientBuilder;
import java.io.*;
import java.sql.SQLException;
import java.util.*;

public class IbatisInsert{
  public static void main(String[] args)
   throws IOException,SQLException{
   Reader rd = Resources.getResourceAsReader("SqlMapConfig.xml");
   SqlMapClient smc = SqlMapClientBuilder.buildSqlMapClient(rd);

   /* This would insert one record in Employee table. */
   System.out.println("Going to insert record.....");
   Employee em = new Employee("Zara", "Ali", 5000);

   smc.insert("Employee.insert", em);

   System.out.println("Record Inserted Successfully ");

  }
} 

员工.java

public class Employee {
      private int id;
      private String first_name; 
      private String last_name;   
      private int salary;  

      /* Define constructors for the Employee class. */
      public Employee() {}

      public Employee(String fname, String lname, int salary) {
        this.setFirst_name(fname);
        this.setLast_name(lname);
        this.setSalary(salary);
      }

    public String getFirst_name() {
        return first_name;
    }

    public void setFirst_name(String first_name) {
        this.first_name = first_name;
    }

    public String getLast_name() {
        return last_name;
    }

    public void setLast_name(String last_name) {
        this.last_name = last_name;
    }

    public int getSalary() {
        return salary;
    }

    public void setSalary(int salary) {
        this.salary = salary;
    }
    } /* End of Employee */

我已将这两个类放在 src 下的默认包中。

最佳答案

问题出在类加载/类路径上。尝试在您的主类中使用此代码并找出加载 jar 的路径。

也许您正在加载的 jar 版本不正确。

public static void main(String[] args) {
            URLClassLoader classLoader = (URLClassLoader)IbatisInsert.class.getClassLoader();
            System.out.println(Arrays.toString(classLoader.getURLs()));
    }

关于java - 线程中的异常 "main"java.lang.NoSuchMethodError : com. ibatis.common.beans.ClassInfo.setCacheEnabled(Z)V,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13640651/

相关文章:

java - 更多用于 Java 和 Eclipse 的编码模板?

java - oracle 集合作为函数返回类型

java - 我可以在 iBatis 上使用 subMap value = "X"和 subMap value = "!X"的 Discriminator 吗?

java - JVM 非内联方法优化

java - 从/src/main/resources/读取文件

java - 如何在 Java SE 平台上设置窗口的标题?

android - eclipse 中的 SDK 版本和我安装的不一样

java - Ibatis:将 getter 定义为结果的属性

java - 在退出前恢复中断的不可取消任务

java - 如何用java解方程?