学习使用EJB有段时间了,稍有感悟,回答如下,希望能帮你:
1、一个EJB包括Bean类和接口文件,接口有两种:home和对外接口,其中每一个接口都有remote和local之分。home接口定义了一些方法供EJB客户端创建、移动和查找EJB对象。remote接口定义了EJB的业务方法。local与remote的区别在于访问是否是本机上。
2、EJB make好之后,先要部署在weblogic上,然后其它应用程序或者类通过JNDI来查找调用EJB的业务方法。你单单引入EJB的包是不够。
如果有问题,再问。

解决方案 »

  1.   

    呵呵,上面的已经回答的很不错了,建议你看看飞思的那本专门讲关于jbuilder和weblogic做j2ee的书,书名我忘了,非常适合于初学者!!!
      

  2.   

    先谢谢各位大大的帮忙!
    to:Bluecatr(蓝夜猫儿) 
    我就是在做那本书最后的一个系统,可是关于如何在前端调用EJB接口部分讲的不是很清楚。
    我通过JNDI用lookup("facade")找到了接口,可是将它转换成facadeHome类(Home interface class),程序就报错,说找不到(识别不出)facadeHome类,因为我这个类是在另一个工程(EJB工程)中做的,所以在前端的工程中识别不出。可是我已经把EJB部署在weblogic上了,这就是我搞不懂的原因所在啊!~
      

  3.   

    好像是你lookup的东西不对吧,将你那一段的代码贴出来看看。
    ejb部署好后,lookup的应该为你配置的jndi
      

  4.   

    哦,对了,我记起来了,就是因为你不是在一个工程中的问题而造成这个原因的,因为当你是一个工程时,jb会自动将ejb下的classes文件,移到web应用的下面的classes中,如果你现在手动都移过去了,并部署好ejb了,应该还是可以的。
      

  5.   

    可是我手动移过去实际上确行不通啊!我在想,既然是前端程序,应该不用知道EJB的具体内容,只要知道它的接口就可以了,放在两个程序里是没有问题的。可是这些类是如何关联起来的呢,难道唯一的通道就是JNDI吗?facade为EJB中的一个会话Bean(JNDI也是这个名字),我在Web应用中建了一个Action通过JNDI调用这个会话Bean,再将它转换成facadeHome类(在写这段代码的时候就报错了)。还有一个奇怪的问题,我把class移到web应用的下面的classes中,程序就可以编译了,可是我编译过后,我移过去的class文件总是会少几个(不知道怎么被删的),然后程序又报错了!!!(我的JNDI应该没有问题)由于我是在网吧里上网的,代码暂没法贴出来,要过几天等我的宽带装好了才行。