EJB是实现商业逻辑层的.分为Entity Bean,和Session Bean.

解决方案 »

  1.   

    《精通EJB》第二版上有很详细的介绍
      

  2.   

    的确,用servlet+ejb可以实现的程序,用servlet+javabean同样也可以实现。这个问题就在于你是否能理解服务的含义ejb的书里面都有介绍。但我的理解并不深,感觉在小型局域网内部servlet+javabean速度好像更快。嘿嘿,具体的效果要大项目才能体现ejb的优越性哦
      

  3.   

    我也来说两句,ejb来实现业务逻辑管理,在书上看到ejb常用于数据库的操作等等。
    小弟也是刚刚接触,大家共同讨论。
      

  4.   

    to nanye18(木吉他) 
    有三种吧!
      

  5.   

    ejb的特点:支持多平台 组件可重用
      

  6.   

    在大型的企业级应用中EJB可以发挥得淋漓尽致!
      

  7.   

    我觉得,EJB最重要的优点,也是可serverlet+javabean不同的是,组件可重用特性,对于不同的服务器和软件环境代码开发一次完成,而且直持多种客户端。
      

  8.   

    难道javabean不支持组件重用性吗?javabean的部署比ejb要方便多了,对于不同的服务器和软件环境代码开发同样也是一次完成,而且直持多种客户端,javabean的可移植性比ejb要强得多在tomcat下开发的javabean可以直接拿到weblogic上面用但在weblogic下应用的ejb拿到websphere下面就需要重新部署了。不知道就不要乱讲。javabean和ejb的不同主要体现在数据的持久化对象的操作上,这个本质又是由实体bean来体现的。为什么要用javabean来调用实体bean而不用javabean来调用数据库?建议你还是看看书再说吧
      

  9.   

    我也看了很多介绍EJB的资料,具体的优点好处还是很糊涂。感觉就是EJB是适用于构建大型企业级系统的,在数据存储上EJB容器可帮你管理很多事情。至于组件可重用嘛,JavaBean不也一样可以重用吗。因为没有用EJB和JavaBean做过很大型的企业级系统,所以也没能体会到EJB所提到的优点。还有的就是EJB中提到一个系统的组件可以分布在多个服务器上,这点我到现在还是搞的不太明白,不知那位高手可否解答下,因为的看的EJB例子都是在用JavaBean调用本地服务的,象一个系统中在EJB服务器A上调用服务器B的EJB或者客户端A同时调用服务器B和服务器C上的EJB应该怎么做。
      

  10.   

    EJB是可发布组件,我认为优点是分布处理,如果是单机,我认为没必要,慢了
      

  11.   

    分布式当然是ejb的主要特点,不同服务器上的ejb的相互调用无非就是context不同而已嘛
    例如以weblogic为例,我要调用b机上的ejb那么
    String url = "t3://b的ip:7001";
    Properties properties = new Properties();
    .......
    properties.put(Context.PROVIDER_URL, url);
    Context context=new InitialContext(properties);
    Object ref = ctx.lookup("你要调用ejb的jndi");
    ........
      

  12.   

    以前看过一些 DCOM 的资料,感觉 DCOM 没有这么复杂,写起来也很容易。
    EJB 搞这么复杂有什么好处?
    至于组件可重用特性,Java Bean 可以重用, java class 可以重用, java functions 也可以在多个模块中重用,为什么一定要用 EJB ??
      

  13.   

    当你不能用其他的方法的时候,就用EJB吧,^_^EJB一般分为两种,session bean和entity bean,有位楼上的兄台说三种,那是把message bean也算上了吧。EJB好处主要还是封装好,复用强。楼上有位兄台说javabean一样,是的,EJB就是Enterprise JavaBean,他比一般的javabean好的地方是提供了一个EJB容器,用容器来管理EJB,这一点普通JavaBean是没有的。以上是个人观点,欢迎指正
      

  14.   

    当你不能用其他的方法的时候,就用EJB吧??
    这话说得就像 EJB 是垃圾一样,还是不能理解
      

  15.   

    奇怪了,EJB不就是JAVA BEAN的一种么?不同的地方根本不是可复用性上面!
    主要的区别在于,应用环境,EJB在支持分布式上要更优秀,以及实现对象的容器化管理,可以作为中间件将数据库的数据保存到逻辑层,以及对象的持久化,
    其实具体应用起来,代码方面到是没有什么,主要是逻辑结构以及组件的部署,要比较麻烦如果是小型项目,根本没有必要用,用了可能适得其反。
      

  16.   

    up!!!!不过我看的 EJB 书中的例子用 asp 就可以了,我一向认为采用开发技术,只要够用,越简单越好。因为不懂为什么要用 EJB ,所以一直学不下去。
      

  17.   

    弄得好像EJB很高深的一样......切
      

  18.   

    支持StevenWSF(出差2个月信誉分少了20分,气死我了!)的说法
      

  19.   

    反驳 EJB 书中常见的错误:1。使用 EJB 是因为常见的 C/S 结构软件安装/分发复杂。
    五年以前我做 ERP 的时候,我们的ERP 只安装在客户的服务器上,共享出来,客户端把它映射成 Z 盘,从 Z盘启动客户端。
    这种技术非常简单,我不相信这些 EJB 大侠们怎么会想不到?2。多层结构体系维护简单,修改某个部件不影响其他部分
    其实 COM/ActiveX 正是这种目的。使用 COM/ActiveX 就足够了。
    我个人认为其实使用 Class /function 即可,修改某个 function 而不影响其他代码是一个软件开发人员必备的能力。3。EJB 容器可以屏蔽数据库的差异,可以加速数据库操作。
    这更是谎言。换不同的数据库,都需要重新测试。就像 java 号称跨平台,但是我们还是不得不在每一个平台上测试至少一个星期。
    加速数据库操作更好的办法是买更大的内存、更快的 CPU。我有一个朋友,给被人上 oracle 系统,让客户安装了 10 TB 的内存,系统飞快。 Weblogic 的费用可以买多少内存?4。EJB 容器可以自动为数据库生成对应类,加快编程速度。
    在 VC 中有一个功能,可以自动为数据库每一个表生成对应的包装类。但是据我所知,很少有写VC 程序的人用它,大家都愿意手工写。
      

  20.   

    to  jacklondon(jacklondon) 
    1. 很少有人会用EJB做C/S结构,一般都是用再B/S结构上。即使用在C/S结构上,一个成熟的产品不可能用你说的这种低级的方法。2. 你对EJB的理解有错误,EJB和COM/ActiveX 的确有很多相似之处,但是要知道COM/ActiveX 一般封装是功能,而EJB一般是用来封装业务逻辑的。 而且这个和Class/Function不是同一级别上的概念。3. EJB是跨平台的,这是不用质疑的,EJB移到不同平台上 只需要修改数据库连接的JNDI和Context就可以了,我想不需要你说的一个礼拜这么久吧。 请问微软的东西如何移植到Liunx,Unix或者Sorlais系统上?使用EJB可以加快数据库操作这是肯定的。其次Java有很多免费开发工具和软件,也不一定要用weblogic 比如jboss就是个很好的免费应用服务器,适合中小型应用。4. VC可能也有映射数据库的技术,但是我想他们的应用和功效并不相同
      

  21.   

    to jamezj(我想我是海):
    1. 在几乎所有 EJB 书中,使用EJB 的理由之一,就是 C/S 结构的软件分发麻烦。我只想反驳这一点。
    2。但是要知道COM/ActiveX 一般封装是功能,而EJB一般是用来封装业务逻辑的???
    我看不出来为什么 COM/ActiveX 不能封装业务逻辑的理由
    3。跨平台功能
    跨平台不是最终用户考虑的问题。当年 PowerBuilder 跨的平台极多,几乎你能说得出来的操作系统它都跨了,是MIS中的霸主,最后还不是让只跨两个平台(Windows, apple)的VB打趴下?
    Borland 的开发工具也跨平台了,销售量还不是不如 Visual Basic ??
    跨平台只是一个市场口号。用户只知道把几个同类产品一起比较,哪个好用就买哪个
    当用户选择Office软件时,有几个人知道Office 2000的开发工具是不是跨平台?有几个人知道WPS用什么开发工具做的?当用户用 winzip 的时候,有几个人因为你写的 zip 工具软件跨平台而 winzip 不跨平台就不用 winzip 改用你写的 zip 工具软件??
    用户关心的是软件功能、易用性
    每一种软件都有它最合适的操作系统,当你决定开发什么软件的时候,你面对的大多数用户群已经局限在一个操作系统了。如果我想开发一种化妆品高档、中档、低档用户一网打尽,可能吗?
      

  22.   

    to jacklondon(jacklondon) 1.我不知道你说的使用EJB 的理由之一是指什么,我想可能它的分布性,或者服务器的负衡均载方面吧?这和你说的C/S结构的软件分发完全不同啊2.我对COM/ActiveX不是很了解,我说的指是一般情况,我并没有说COM/ActiveX 不能封装业务逻辑。其中的区别只能自己去慢慢体会,请你不要走极端。我只想说一个事物能够存在发展,那么必有它存在的价值,发展的理由。3.我想你是开发应用程序的吧,你说这些东西的确很少需要考虑平台问题,他要考虑的是适应大多数用户,你可以选择让他适用于大多数用户。我想你要知道一点,EJB一般都用B/S上面,他的用户是企业,集体,并不是普通的用户,是他选择你。但是对一个B/S结构的软件(如门户,电子商务,电子政务),出于安全(不用我说Windows的安全性了吧),价格等因素客户会选用不同的操作系统(一般选用Linux或Unix),难道因为用户的操作系统不同而为每个操作系统开发一套? 我们就有一个用户买的是Sun的小型机它送Sorlais的操作系统,所以他绝对不会愿意在花钱去买其他的操作系统,这是你怎么办呢?不做还是重新开发一套?至于什么开发工具好,我不想争论,因为我认为每种工具都有它的优缺点,绝对不是用销量就能下断言的。
      

  23.   

    to  jamezj(我想我是海)
    1. 每一个 EJB 书前几页都会有这样的内容:为什么用 EJB, 什么时候用 EJB。然后它们又都把C/S结构的软件分发不方便作为使用 EJB 的理由,因为 EJB 不存在这种不方便。
    我的意思是这种理由根本不存在。
    3。据我所知,用 ASP 的大用户多的是,像 HP, 西门子,他们的公司内部用户,外部用户也不少。为什么我们不能用?
    至于Sun的小型机,我想用 PC server 的远比Sun的小型机 server 的用户多。从各种统计资料就可以知道。如果你的软件只是针对Sun的小型机用户,那 ASP 当然用不成了。
      

  24.   

    1。ejb的分布指的就是客户端的分发?2。“偶合”有代码上的,也有功能上的。3。java跨平台,但没说跨容器,跨数据库。4。有更好的工具,但不愿意使用,那就什么都不用说了
      

  25.   

    to  jacklondon(jacklondon) 
    根据你所说,刚刚我翻了《EJB应用开发详解》一书,并没有看到任何于C/S结构比较的东西。
    同时这里说到了EJB开发的优势:提高开发效率,商务逻辑可移植,高度可定制,支持高度可收缩性,是一种极其通用并功能强大的多层分布。
    ASP开发简单,投资少,对于要求不高的用户当然是很好的选择啊。ASP的功能有很大的局限,ASP我想很快就要过时了吧。同时ASP和EJB也是两个不同层次的上概念吧,要比较也应该和JSP比较吧。我说sun的小型机只是举个例子,我想你应该清楚这一点,J2EE架构一般是用来开发大型应用的,一个小型企业网用这么架构是完全没有必要的。我想你统计的PC Server都是一下中小型用户,你应该去统计一下大型应用的用户,你可以去电信局,医保局,银行那些数据量很大,安全性要求高的用户有用PC Server的吗?而且也很少用windows操作系统的。
    同时我想说明一点,微软推出的.net技术和j2ee在体系架构上已经很难分出高下了,所以你不要一定分出他们的好坏,我对.net也有所接触,我想两者各有优缺点吧。不过有一点是肯定的.net被禁锢在微软自己操作系统上,所以现在很多人还是愿意选者j2ee技术来设计大型的应用
      

  26.   

    EJB的分布式 应该是指各个应用组件根据他们所在的层分布在不同的机器上EJB最多能说是跨容器的,跨数据库没有听说过
      

  27.   

    我想HP, 西门子之类不算小型应用吧?我现在所在的公司也是前500强的,几乎所有的 server 都是 windows 2000 server, NT4 server 也不少。“安全性要求高的用户有用PC Server的吗”这话说得太绝对了吧?在500强公司中,看好java 的不少,但是现在用java 的很少,出去 IBM 等极端反 microsoft 的公司,用 asp 的不少。
    如果是国内,国内公司采购的回扣问题让他们只买贵东西(回扣多),再说了,还有国内大公司在网上说 netware 多么多么先进的,这种问题不好说。
    至于“提高开发效率,商务逻辑可移植,高度可定制,支持高度可收缩性”,我怎么看都像 ASP3高级编程里面的话。这是套话,官方语言。
      

  28.   

    "EJB最多能说是跨容器的,跨数据库没有听说过"
    我在 EJB 书中看到的是说, EJB 的好处之一是, 屏蔽数据库差异,意思是你写的代码关于数据库操作部分,都让 ejb server 接管了,因此换一个数据库,对系统影响不大。但是我想这也只是一种理想情况。
    真实的情况是, jdbc 屏蔽数据库差异,但也不是完全屏蔽,ANSI SQL 标准中没有存储过程,如果用了存储过程那肯定是数据库相关了。难道用EJB 时候用了存储过程就可以随便换数据库??我不明白
      

  29.   

    我看了SUN 公司的 Solaris bug list, 每个版本 bug 也不少。 sendmail bug 也不少,还不是有很多人用?好像没有安装的操作系统,真正的网络安全需要网络安全软件/硬件来保证,没有人靠安装Solaris 或者其他操作系统就说我的系统安全的。
    包括流行的各种版本 Linux , 如果你上他们厂商比如 redhat 网站上看,就会发现成百上千个 bug, 有什么安全可言?
      

  30.   

    我个人觉得首先不应该那EJB和COM+这种技术来比较它们的用途,它们的主要区别是语言和支持系统不同,一个是SUN公司的可跨平台的,一个是Microsoft的专用技术.它们两个的用途我个人觉得的确是差不多,但我还是比较欣赏EJB.至于EJB能够实现的功能和用途,的确COM+也可以实现.所以不要这样比较,既然学java就要用java的技术,还用什么com,asp技术呢.
    而javabean跟ejb还是有本质的区别.
    楼主所认为的javabean和ejb是差不多的,那是当server服务器只一台机器时,也是就jsp页面和javabean在一台机器上的时候,当你的javabean不在你web服务器上的时候,你还能调用吗???
    而ejb主要就是解决远程调用的情况.至于客户端更能利用这种技术,而不单单是通过浏览器来实现远程访问.
    不知道我这样说对不对,但我相信应该是这样一个道理.
      

  31.   

    我们这儿的几乎每个项目都会用到两种以上的编程语言。我们选择编程语言是看项目的实际情况,用什么最快完成。如果能用 ASP 完成的项目,用了 EJB 会让别人笑话。
    noratong(诺拉) 大侠所说的"既然学java就要用java的技术,还用什么com,asp技术呢"在我们这儿行不通。
    我不知道各位所说的大型应用的标准。在小型应用中用 asp 的人非常多,我想从程序员人数上面来说,用 asp 的人应该比 ejb 或者 jsp 的多。说ASP很快就要过时了无疑是错误的,对于大量的简单应用程序,不用 asp 难道要用 ejb ?
    好像只用 java /ejb 的程序员老是说现在是 java/ejb 的天下,其实你去 download 网站,网上软件商城等等上面看看,大量的软件仍然是传统的 VB/VC 的天下。java/ejb 写的软件不到 10%
      

  32.   

    我认为ejb主要是适应目前大型网站合并的需求
    ejb可以跨平台和数据库
    重用性比任何的技术都好
      

  33.   

    怎么拿EJB和ASP来比较呢...
    EJB用来开发商务中间件的这个大家都知道了吧...
    中间件可以拿来组装,重用,移植...
    EJB需要容器即应用服务器来支持...有了强大的应用服务器支持EJB效率更高...
      

  34.   

    非常赞同楼上的说法 怎么拿EJB和ASP来比较呢?这是两个完全不同概念。我要坚持ASP很快就要过时的说法,尽管很多小项目都还是能用ASP实现的,过去的确很多小项目大家都喜欢用ASP,但是ASP存在很多不足,微软推出.net以后,我想ASP.NET的功能比ASP更吸引人吧。即使不使用ASP.NET中的新增的诱人功能和架构,我想很多人也会ASP.net最基本的类似于ASP写法写,这样无疑可以提高产品的身价
      

  35.   

    EJB,由其是SESSIONEJB做的很好,事务控制很强,但实体BEAN这种方式不好说,用起来感决不是很方便来
      

  36.   

    在我印象中 ASP.NET 与 ASP 是一个产品。我说的 ASP 包含各种 ASP 版本。
    我不明白的是什么时候用 EJB , EJB 书中所说的几种情况都不值得推敲。
    在很多小型应用中EJB 完全没有地位,如果 EJB 得易用性没有重大改变,EJB 仍然不能进入小型应用
      

  37.   

    to jacklondon(jacklondon) 
    如果把ASP.NET和ASP放在同一级别,我想是错误的
    ASP.net并不是ASP的升级产品吧EJB应该说J2EE技术一般是用在大型应用中
    但是现在中小型的使用也并不是没有