当前位置: 首页 > 面试题库 >

java.lang.IllegalAccessError:尝试访问方法

司马庆
2023-03-14
问题内容

我遇到了一个例外,但找不到原因。

我得到的例外是:

java.lang.IllegalAccessError:尝试访问方法Connected.getData(Ljava / lang / String;)Ljava / sql / ResultSet; 从B类

该方法是公开的。

public class B
{
  public void myMethod()
  {
   Connected conn = new Connected();  // create a connected class in order to connect to The DB 
   ResultSet rs = null;  // create a result set to get the query result
   rs = conn.getData(sql); // do sql query
  }
}

public class Connected 
{
 public ResultSet getData(String sql) 
{
  ResultSet rs = null;
  try 
  {
     prepareConnection();
     stmt = conn.createStatement();
     stmt.execute(sql);
     rs = stmt.getResultSet();
  }
  catch (SQLException E) 
      {
    System.out.println("Content.getData Error");
    E.printStackTrace();
       }
return rs;
}

我正在使用Tomcat 5.5.12和JAVA 1.6


问题答案:

几乎可以肯定,您在运行时使用的类版本与您期望的版本不同。特别是,运行时类将不同于您针对其进行编译的类(否则将导致编译时错误)-该方法曾经存在private吗?您的系统上任何地方都有类/ jar的旧版本吗?

作为IllegalAccessError状态的javadocs ,

通常,此错误是由编译器捕获的。如果类的定义发生了不兼容的更改,则只有在运行时才会发生此错误。

我一定会看看您的类路径,并检查它是否有任何惊喜。



 类似资料:
  • 问题内容: 我创建了一个控制台应用程序,并使用EntityFramework 6.2(用于与MS SQL连接),MySql.Data 8.0.11和MySql.Data.Entity 6.10.7(用于与MySQL连接)。 在此应用程序中,我想创建一个像SQL作业这样的作业,但是我不想使用quertz.net。我有错误: “尝试通过方法’MySql.Data.Entity.EFMySqlComma

  • 问题内容: 我正在尝试使用Instagram API,并在do- while循环中发出AJAX请求,直到next_url为空。我想要这段代码要做的就是通过发出连续的请求来获取所有关注者,直到完成为止。该代码有什么问题? 当我删除do- while循环时,它不会给我一个错误,但是一旦我在循环中使用AJAX请求,它就永远不会停止。显然,字符串没有更改为新获取的字符串-为什么?怎么了? 在逻辑失败后,我

  • 我带着一个我无法解决的问题来到这里。 我在版本1.7中有一个prestashop,我已经移动到另一台服务器,值得一提的是,在旧服务器中,prestashop运行良好。 当我将prestashop迁移到新服务器时,除了我想进入后台,当我想进入后台时,只需将页面留空,其他一切都可以正常工作。 我已经激活了调试模式,但它没有给我任何与后台相关的错误,有趣的是,当调试模式被激活时,我可以毫无问题地进入后台

  • 我在写spring应用程序。我在我的项目中加入了招摇过市,但不知何故它无法正常运行。我的项目中也有带令牌的承载身份验证。请告诉我如何解决这个问题

  • weblogic的版本是:12.2.1.2.0,我想这个异常可能与懒惰加载有关,对吗?但最后我不知道它到底是什么。

  • 我正在尝试一些简单的方法,使用FetchAPI从应用程序前端发出请求,如下所示 我在服务器上像这样处理这个请求, 但是,当我尝试访问前端console.log(响应)上的数据时,会得到以下对象 响应主体为空。我想那就是数据显示的地方?如何有效地从服务器传递数据?