要在你的web.xml中配置哈,例如:
<ejb-ref >
      <description></description>
      <ejb-ref-name>ejb/Count</ejb-ref-name>
      <ejb-ref-type>Session</ejb-ref-type>
      <home>example.wang.CountHome</home>
      <remote>example.wang.Count</remote>
   </ejb-ref>
我知道的只有这么多哈,不对,请指出来,我也刚学ejb,还是有好多问题的

解决方案 »

  1.   

    直接在SERVLET里查找EJB对象就可以了
      

  2.   

    你在Client中怎么调用的,在servlet 一样啊
    例如:你可以在init()中JNDIName = "java:comp/env/ejb/ejbExam";
         Object  objref = initContext.lookup(JNDIName);
                ejbExamHome = (ejbExamHome )PortableRemoteObject.narrow(objref,ejbExamHome .class);
    ..................
      

  3.   

    客户端调用EJB的一小段程序, 前提是EJB已经部署在应用服务器上了. 这里的应用服务器是JBoss, 部署在localhost上    try{
          Properties prop = new Properties();
          prop.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
          prop.put(Context.PROVIDER_URL, "jnp://localhost:1099");
          prop.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
          Context initial = new InitialContext(prop);
          
          Object obj = initial.lookup("HelloEJB");
          HelloHome home = (HelloHome)PortableRemoteObject.narrow(obj, HelloHome.class);
          Hello ejbobj = home.create();
          int m = ejbobj.add(arg1, arg2);
          System.out.println("m = " + m);
          
        }catch(Exception e){
          e.printStackTrace();
        }对不同的应用服务器,Context.INITIAL_CONTEXT_FACTORY不同
    Context.PROVIDER_URL于应用服务器的类型和地址端口号都有关系
    Context.URL_PKG_PREFIXES据说没什么用, 加不加都行不知有帮助没?
      

  4.   

    ejb的部署有3种方式:
      1. 工具部署
      2. 在服务器上部署
      3. 可以手动部署   不能动态更改的,如果你该了就要重起服务器。
      

  5.   

    我正好碰到一个JBoss的EJB客户端问题,学习!
      

  6.   

    不能动态更改的,如果你该了就要重起服务器。这完全是瞎说,如果服务器做得这么傻,那还混个屁。
    不同的服务器具体情况不同,比如weblogic和websphere有web的界面让你redeploy
    jboss则只要更新了ejb的jar包就会自动的redeploy
      

  7.   

    首先,感谢各位的留言!
    不过小弟还是没有弄明白,EJB如果做成分布式的话,客户端需不需要配置classpath来调用EJB,就是说客户端需不需要EJB的包???WEB客户端要调用服务器上的EJB,如何让客户机上设置CLASSPATH?客户机如何才能找到EJB中的类来通过编译?