Object object = initialContext.lookup("java:comp/env/systemfacade");
这句用Object object = initialContext.lookup(Home的JNDI名);
Home的JNDI名可在Weblogic Console中右键单击左边的Server,找到JNDI查看正确的名称,或到weblogic-ejb-jar.xml中去找,
你的错误好象是包里没有那个Class,可能是你把EJB,和WAR单独打包的原因,需打在同一个ear包里或在war包里包含HOME的Class

解决方案 »

  1.   

    你可以先用JB9生成EJB的客户端,测试没问题后在用Servlet调用
      

  2.   

    写个ServiceLoader代替那一大段查找代码更好一些
      

  3.   

    你是不是将Web和EJB一起打包成ear文件的,在里面写一个appliction.xml就可以了,部署应用程序。在Weblogic中有例子
      

  4.   

    没有放接口文件到WEB服务器下!
      

  5.   

    谢谢 dongdong2112() ,shangqiao(伤桥) , xyworker(溢洋)我的EJB和Web应用是单独部署,估计原因就出在这里:没有打成.ear包或者至少应该在.war中包含Home接口还有几个问题不太明白,想再请教一下各位:
    1. 实体EJB是否通常都设计为Local,以提高会话EJB对其的调用效率?
    2. 多表关联时,比如有两个表user,group,我要查某个用户属于哪个组,应该怎么查呢?
    2. 在开发MVC架构的项目时,是怎么分工协同的?步骤如何?请简单介绍一下你们的经验:)
       尤其是: 是不是先开发出EJB,单独部署到WLS上,测试后供Servlet(jsp)开发人员调用?最后才是美工?
       还是一开始就用.ear包?(如果那样岂不是美工每次修改都得重新打包部署了?)
       整个流程应该是怎么样的呢?
      

  6.   

    1. 实体EJB是否通常都设计为Local,以提高会话EJB对其的调用效率?
    是这样,不过如果要实现负载均衡的Cluster就要用远程接口
    2. 多表关联时,比如有两个表user,group,我要查某个用户属于哪个组,应该怎么查呢?
    多表关联,在EJB生成时就配置关联,查询时非常方便,如
    UserLocal ul=(UserHome)uh.findByPrimeryKey("1");
    GroupLocal gl=ul.getGroup();
    2. 在开发MVC架构的项目时,是怎么分工协同的?步骤如何?请简单介绍一下你们的经验:)
       尤其是: 是不是先开发出EJB,单独部署到WLS上,测试后供Servlet(jsp)开发人员调用?最后才是美工?我们是先由美工创建原型,设计人员编写设计,然后后台程序员先开发实体BEAN、再开发SESSION BEAN、同时前台程序员实现MVC,最后把业务代理和SESSION BEAN关联即可