其中的一个字段内容为null
你的数据库里是null

解决方案 »

  1.   

    不会的
    我用findByPrimaryKey就可以。你的邮件收到了,谢谢!节日快了!
      

  2.   

    哈,应该是这一句并没有得到Dept的对象,所以dept为空~
    Dept dept = (Dept) javax.rmi.PortableRemoteObject.narrow(it.next(), Dept.class);
    改成这样
    Dept dept = (Dept)iter.next();
      

  3.   

    get方法对应的字段可能有空值,你用SQL PLUS看看
      

  4.   

    zyymmm(娃哈哈) 
    确实有数据accp(accp) 
    试过了,一样。如果没有得到Dept的对象,System.out.println(dept);怎么可以打出来????
      

  5.   

    打出来的是什么?
    Dept dept = (Dept) javax.rmi.PortableRemoteObject.narrow(it.next(), Dept.class);
    if(dept != null)
              //System.out.println(dept.getDeptno()+" "+dept.getDname()+" "+dept.getLoc());    这为什么出错??????
    else
      System.out.println("No dept!");
    System.out.println(dept);
      

  6.   

    ava.lang.NullPointerException at org.jboss.ejb.plugins.local.EntityProxy.invoke(EntityProxy.java:38) at $Proxy2.getDeptno(Unknown Source) at firstcmp.DeptSesTestClient.main(DeptSesTestClient.java:158)
    我试过了
    还是不行
      

  7.   

    oracle:
    NUMBER(2)  deptno;
    VARCHAR2(14) dnamel
    VARCHAR2(13) loc
      

  8.   

    你不要一次调三个方法,一个一个调,看是哪个出错了~
    还有你说System.out.println(dept);能打出来,打出来的是什么?
      

  9.   

    请教一个问题:在用session bean 访问entity bean的时候,session bean一般什么时候用有状态的?什么时候用无状态的?
    还有,怎么确定session bean的接口类型应该是local,还是remote或local/remote?不够在加分
      

  10.   

    以下是个人意见,仅做参考:session bean 有无状态需要根据具体情况而定!有些项目使用值javabean来保存状态配合无状态的session bean一样可以达到有状态session bean的效果,当然还是有很大区别的!session bean的接口类型:
    local:一般是为在同一进程内调用准备的(客户端程序和EJB使用同一个虚拟机),分布式不可用(但是速度比remote要快)
    remote:远程调用(支持分布式)选那一种,看你的系统架构
      

  11.   

    我又在weblogic试了一遍tnnd,还是不行。
      

  12.   

    检查一下你的deptno,试一下accp(accp) 的方法
      

  13.   

    我用session bean访问entity bean,session bean里有一个方法:
    public java.util.Collection getAllDept() {
        Collection col = null;
        try{
          col = deptHome.findAll();
        }catch(Exception ex){
          ex.printStackTrace();
        }
        return col;
      }是不是不能这样用?
    另外:entity bean是本地的,session bean是远程的。有没有问题?
      

  14.   

    accp(accp) :
    你能说清楚点吗?为什么?我应该怎么办?谢谢你一直帮忙。
      

  15.   

    public java.util.Collection getAllDept() {
        Collection col = null;
        ArrayList col2 = null;
        try{
          col = deptHome.findAll();
          col2 = new ArrayList();
          进行循环,把col的内容放到col2
        }catch(Exception ex){
          ex.printStackTrace();
        }
        return col2;
      }
      

  16.   

    也就是Session Bean你不能把本地实体Bean的结果直接返回给远程客户端~
    你可以把结果取出来包装一下,再返回给远程~
    比如这样
    calss Department
    {
      Integer id;
      String name;
    }
    public java.util.Collection getAllDept() {
        Collection col = new Vector();
        try{
          Collection tempColl = deptHome.findAll();
          Iterator tempIter = tempColl.iterator();
          while(tempIter.hasNext())
          {
             Dept dept = (Dept)iter.next();
             Department department = new Department();
             department.id = dept.getId();
             department.name = dept.getName();
             col.add(department);
          }
          
        }catch(Exception ex){
          ex.printStackTrace();
        }
        return col;
      }
    代码是我手敲的,可能有些错误,大致意思就这样~
    兄弟,你这错误害得我不浅啊~
      

  17.   

    accp(accp) :是不是还要有一个Department类,他的成员要bean,也就是表的字段对应。这也太麻烦了。除了俩个借口和一个实现类,还要一个。是不是?
    麻烦你了。在开个帖子给你分。 
      

  18.   

    accp(accp) :是不是还要有一个Department类,他的成员要bean,也就是表的字段对应。这也太麻烦了。除了俩个借口和一个实现类,还要一个。是不是?
    麻烦你了。在开个帖子给你分。
      

  19.   

    Department这个类还有别的作用吗?
      

  20.   

    这个类就起一个中介作用~
    就是很麻烦,就是没办法,远程不能访问本地接口~
    呵~
    或者你SessionBean直接调用EntityBean的远程接口,这样就不用要那个Department的类了,
    但这样的话SessionBean作用就显得很小~
      

  21.   

    老大,你没抛java.rmi.RemoteException啊
    另外,col = deptHome.findAll();会反复实例化CMP的,自己写个private的deptHome(),在里面lookup远程接口,然后col = deptHome().findAll();另外,最好别直接throws java.rmi.RemoteException,你自己写个异常类,用super()继承java.rmi.RemoteException ,这样可以抛出更详细的异常。