这个错误已经解决了,但是出现查找数据库的java.sql.SQLException: No data found
很是奇怪.错误仍然是当前行!

解决方案 »

  1.   

    你的EJB服务器的连接池没有正确配置!我以前碰见过。不知道你用的什么Server?
      

  2.   

    看是不是没有注册到home
    查找一写目录树
    public getInfo(String id){
    try{InitialContext initial = new InitialContext();
         StuHome stu= (StuHome) initial.lookup("java:comp/env/ejb/stu");
    stu=home.findByPrimaryKey(id);
    return stu.getName();
    }catch (FinderException e) {
     throw new EJBException
     ("Unable to find the user " + id, e);
    }
      

  3.   

    <prim-key-class>java.lang.String少不少,看看字段映射。
      

  4.   

    我查看了SQL数据库的事件探查器,发现查找的方法已经被探查器查找到对应的SQL语句执行:
    SELECT WLO.ID,WLO.email,WLO.name,WLO.password from Student where id=@p1下面又出现一行为@p1="";这个值为我传递进来的参数值,所有的一切都是对的.却在
    public ejb.Student findByPrimaryKey(java.lang.String arg0)
       throws javax.ejb.FinderException
    {
      try {
        return (ejb.Student)
          super.findByPrimaryKey(md_ejbFindByPrimaryKey_S,  arg0 );
      } catch (java.lang.Exception e) {
        if (e instanceof javax.ejb.EJBException) {
          throw (javax.ejb.EJBException)e;
        }
        else if (e instanceof javax.ejb.FinderException) {
       throw (javax.ejb.FinderException) e;//抛出异常所在
    }
           else {
             throw new javax.ejb.FinderException ("Error while finding bean: " + 
               e.toString());
           }
      }
    }
    中抛出javax.ejb.FinderException的异常!各位看看究竟是什么原因??
      

  5.   

    一个看法:
    findByPrimaryKey这个方法是home的方法,不是ejb对象的方法。你在使用super保留字调用的时候好像应该用ejbFindByPrimaryKey。另外,你的md_ejbFindByPrimaryKey_S是什么参数?抛出的异常究竟是那一个FinderException,系统抛出的还是你自己创建的?
      

  6.   

    再说一遍,方法名应该是ejbFindByPrimaryKey。
    另外,如果不是方法名的问题,首先把参数打印出来看看,保证没有错误,其次请仔细检查ejbFindByPrimaryKey,一定是主键什么地方有问题。说实话我看不出什么特别大的逻辑错误会导致该异常。
      

  7.   

    最终的解决办法是换驱动,ODBC桥好像有这种问题!