在ejb-jar.xml文件里可以看元素<session-type>中的属性,Stateless是无状态的,Stateful是有状态的。
如果你是用JBuilder开发的话,这个文件是自动生成的,现在一般都是这么用。
要想看到也不难,在EJB Designer中,创建EJB的时候可以选择。有态和无态的区别不在性能上,在功能上。有态的带参数,即属性;无态的则不能带。

解决方案 »

  1.   

    如果用jb9.0里只要新建ejb 2.0 Bean Designer 修改其Session type 属性就可以了,自动生成xml 文件,
    还有一种方法就是上面这为老兄直接修改
      

  2.   

    我不知道楼主所想用什么方法知道bean是哪种bean?1.要只是想在静态下知道为何种bean的话,可以和上面说的一样,看看描述符就是了。
    2.要是想在动态下知道是哪种bean的话,就需要自己编写代码了,如下是判断一个bean 
    是无状态/状态/entity Bean:
    import javax.ejb.*;
    import simpleBean.*;import javax.naming.InitialContext;
    import java.lang.reflect.*;class SalaryInspector{
     public static void main(String[] args){
       try{
         InitialContext ctx = new InitialContext();
         Object objRef = ctx.lookup("Salary");
         SalaryHome home = (SalaryHome)javax.rmi.PortableRemoteObject.narrow(
                                 objRef, SalaryHome.class);
         EJBMetaData date = home.getEJBMetaData();     String beanType = "";
         if(date.isSession){
           if (date.isStatelessSession()){
              beanType = "Stateless Session Bean";
            }else{
              beanType = "Stateful Session Bean";
            }else{
              beanType = "Entity Bean";
            }
          System.out.println("Beantype: " + beanType);
         }catch(javax.naming.NamingException ne){
         }catch(java.rmi.RemoteException re){
         }
     }
    }
      

  3.   

    cootme2002(COOTME) 
    请问你这里的
    EJBMetaData date = home.getEJBMetaData();是EJB里面的一个方法吗?
    是不是一根据调用EJB中的某个方法来判断EJB的类型啊?
      

  4.   

    还有
    import simpleBean.*;
    从那里来的啊?
    要在JB中设置的吗?