我新建一个web project, 很多代码是从另一个程序中复制过来的,现在的报错为:java.lang.NoClassDefFoundError: javax/sql/rowset/Joinable, 具体就是在执行下面红色标记行处的错,因为前一句System.out.println有结果,后面的就没有结果了。
我看了javax/sql/rowset/Joinable主要是在oracle的包里面,我的另一个程序用了oracle 8/9/10 3个jar包,因此我这个也照用,没想到却出这样的错。
另外,我将JDK改为1.4的时候,import javax.sql.rowset.*;这句好象就不能识别。 JDK改成1.5就没问题。但我另外那个程序JDK就算改变这句import均可以识别。请高手帮忙,问题到底是出在哪里啊???  public OracleCachedRowSet getRowSet() throws SQLException,
      NamingException {
    PreparedStatement ps = null;
    ResultSet resultSet = null;
    Connection conn = null;
    try {
      conn = CommonTool.getConnection(this.dbName);
      System.out.println("Connect success:"+this.dbName);
      this.setParamList();
      //this.handleWildcard();
      ps = conn.prepareStatement(sqlString);
      this.assignParamValue(ps);
      ps.setQueryTimeout(60 * 10);
      resultSet = ps.executeQuery();
      System.out.println("Before OracleCachedRowSet");
      rowSet = new OracleCachedRowSet();      System.out.println("After OracleCachedRowSet");
      rowSet.populate(resultSet);
    }
    catch (SQLException ex) {
      log.error("SQLException while query: " + ex);
      throw ex;
    }
    finally {
      if (ps != null) {        ps.close();      }
      if (resultSet != null) {        resultSet.close();      }
      if (conn != null) {        conn.close();
      }
    }    return rowSet;
  }

解决方案 »

  1.   

    OracleCachedRowSet没有找到类,路径变了引用的就不对
      

  2.   

    这个jar包是哪里的?
    jdk不能识别是因为jdk版本不同么 类所在的jar包是用1.6版本的编译的 所以你用1.4就不对了
      

  3.   

    jdbc有版本,请楼主检查看看。
      

  4.   

    怎么检查JDBC的版本啊?我用JDK1.5时java程序不报错,但程序运行的时候报错。
    我之前那个OK的程序,用1.4,1.5都可以也。