1)三层:数据层,中间件层 ,表示层
在EJB中对应:DB,EJB/Corba,Client(App/JSP/Applet...)
2)客户端只是一个逻辑上的概念,通常指App/JSP/Applet...等表示层的技术
3)EJB服务器指运行EJB的环境,比如Weblogic中的EJB容器。
4)数据库运行在最底层,在三层设计中,它通常不直接报漏给表示层,比如EJB中通过实体BEAN来访问数据库
5)EJB的JAR文件部署在EJB服务器端。部署成功后会生成Client.jar,该.jar包可供客户端运行使用6)可以自己建个库模拟一下。(也可以通过某些应用服务器提供的功能(比如WEBlogic就支持)自动建表,当然,需要先和数据库连接并有建表权限)

解决方案 »

  1.   

    谢谢你!!!
    我在EJB提供商那里运行程序没有事可以读出数据
    可是回来在自己的机子上模拟了提供商的数据库就报下面的错误:(EJB在我的上WEBLOGIC上发布了程序也没问题,就是出下面的错误!!)这是怎么回事?????有可能是哪的错误呢???java.lang.ClassCastException
            at com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(Porta
    bleRemoteObject.java:296)
            at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
      

  2.   

    是你的jndi name 搞错了吧??
      

  3.   

    还是有些不明白,我现在使用的WEBLOGIC这台机子是EJB客户端???还是服务端???
      

  4.   

    J2EE一般可以分三层:
    首先JSP做为表示层,专门用于显示页面及结果使用,一般不在JSP上做任何逻辑操作。
    其次,SERVLET作为一个中间纽带,很多逻辑可实现在SERVLET上进行,通过调用Java Bean上的方法,然后将结果传入到JSP上去。Java Bean主要用来存放实现业务逻辑的各个方法。
    而EJB作为事务层,用语描述数据库的组织结构及实现一些对数据库操作的方法。EJB分为三种。一般Session Bean来实现逻辑方法,Entity Bean来描述数据库。不知道我说的明白吗?
      

  5.   

    谢谢你!!!
    我在EJB提供商那里运行程序没有事可以读出数据
    可是回来在自己的机子上模拟了提供商的数据库就报下面的错误:(EJB在我的上WEBLOGIC上发布了程序也没问题,就是出下面的错误!!)这是怎么回事?????有可能是哪的错误呢???java.lang.ClassCastException
            at com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(Porta
    bleRemoteObject.java:296)
            at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:137)
      

  6.   

    出现ClassCastException的原因好像是这个样子的(下面的文章出自水木清华java版)这是典型的RMI调用方式。RMI Server把Implementation绑定到Registry上去, 
     
    由Client调用lookup()方法返回Implementation的Reference--即Stub。由于Stub也实现 
    了相应的Remote Object接口,所以可以强制转换成Remote Object。 
    rhythin的程序出了ClassCastException,可能是由于代码在不同地方保留了不同版本的 
    原因。 
    Client端的代码忘了更新,常常会出现这个问题。
      

  7.   

    如果你确信在weblogic服务器上发布(部署)EAR文件成功了。
    那么可能是由于client端的环境设置有问题。
    如果有Jbuilder的话,你可以把weblogic和jbuilder整合起来,然后通过jbuilder自动创建一个测试客户端试一试?
    建议你先别做实体bean,先做一个简单的session bean测试一下(不连接数据库的那一种)。