虽然我不是高手,不过可以试试作答
1,其实一个statefulBean和stateless在编码上是不能做出什么指定的,区别在于向容器的部署过程中,一般部署工具到达某一个步骤会让你选择需要将这个EJB部署为何种类型的BEAN,之后在客户调用的时候容器会自行管理,比如是一个statefulBean,容器会自动做相应管理保存BEAN方法调用间的会话状态。
2 container-managed为容器持久性管理,bean-managed persistence为BEAN持久性管理。二者可简称为cmp和bmp.cmp由容器本身自动管理Bean状态向基础数据库保存的过程,一般指定需要交由容器管理的字段并设置字段间关系后,部署工具可自动生成相应的SQL和EJB QL语句。CMP大大减少程序员需要手工编写的代码量,而让程序员把更多精力集中于业务逻辑上。BMP与之相反,数据库操作的代码需要全部由程序员手工实现,这样使得程序较CMP臃肿,但更具灵活性。(代码倒是有现成的,不过太多了,抱歉)
3 session bean可以根据entity bean的JNDI名或环境名引用来查找entity bean的HOME接口,
  javax.naming.Context con=new javax.naming.InitialContext();
  Object obj=con.lookup("entitybean's jndiname");
  entityHome home=(entityHome)javax.rmi.PortableRemoteObject.narrow(
obj,entityHome.class);
  entityObject entity=home.create(args...);
以上假设entityHome,entityObject分别是entityBean的REMOTE HOME INTERFACE 和REMOTE INTERFACE,在得到远程接口entity后,就可以调用entityBean中实现的各业务方法了
4,简单地说,entityBean的实例对应了数据库一个表中的一行记录

解决方案 »

  1.   

    xioyoo(xioyoo) :very good. You had a solid base of EJB.
      

  2.   


    我按照"j2ee Tutorial"里的步骤dploy完成了《mastering-EJB2.0》里面的helloWorld例子。然后用
    ”runclient -client HelloApp.ear -name HelloClient“运行客户程序时出现如下的异常:
    Initiating login ...
    Binding name:`java:comp/env/HelloHome`
    Application threw an exception:java.lang.IllegalAccessException
    请问是什么原因?
    (对了,最后让我设什么APPCPATH=ConverterAppClient.jar; export APPCPATH;我不知道怎么弄就没有管);