client端需要包括home接口和remote接口

解决方案 »

  1.   

    可能是ejbcreate()函数出了问题,我以前碰到过这个问题 你试一试吧
      

  2.   

    1 如 tangjr(风之子)
    2 是不是classpath问题
      

  3.   

    首先谢谢大家!
    to tangjr(风之子),Nightlee(李晔) :
    那client端代码也要打包进EJB包里面?还是home接口和remote接口应该有2份的,EJB包里有一份,然后调用的client端也有一份?第二个问题,有可能是classpath的问题,因为我没有设置过classpath,后来我加了classpath,然后把jboss-j2ee.jar设进去,但问题还是有。
      

  4.   

    我再把代码贴出来:
    remote和home接口都没有去动他,就不贴出来了,然后bean的商务方法是:
    public String hello(){
    System.out.println("hello()");
    return "Hello, Handsome Boy!";
    }然后,我在servlet中和EJB相关的代码是:
    String title = "";
    try{
    Hashtable props = new Hashtable();
             props.put(InitialContext.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
    props.put(InitialContext.PROVIDER_URL, "jnp://127.0.0.1:1099");
    InitialContext ctx=new InitialContext(props);
    //Object objRef = ctx.lookup("Hello");
    HelloHome home = (HelloHome)ctx.lookup("HelloHome");
    //主接口
             //HelloHome home=(HelloHome)javax.rmi.PortableRemoteObject.narrow(
             //objRef,HelloHome.class); 
    //组件接口
    Hello bean =home.create();
    out.println(bean.hello());
    title = bean.hello();        
    }catch(javax.naming.NamingException ne){
    out.println("Naming Exception caught:"+ne);
    ne.printStackTrace(out);
    }catch(javax.ejb.CreateException ce){
    out.println("Create Exception caught:"+ce);
    ce.printStackTrace(out);
    }catch(java.rmi.RemoteException re){
    out.println("Remote Exception caught:"+re);
    re.printStackTrace(out);
    }
    好像都没有进入这个try块,直接就异常:
    NoClassDefFoundError: javax/ejb/CreateException
      

  5.   

    EJB包含三个主文件,一个是HOME接口,一个是远程对象接口,一个是实现接口,再加ejb-jar.xml打包成一个JAR文件,然后部署到JBOSS服务器上。
    CLIENT程序在哪运行都行,但在CLASSPATH中一定要能找到HOME接口和远程接口。
    就行了。
      

  6.   

    NoClassDefFoundError: javax/ejb/CreateException
    这个问题应该是你的import时没有加进,javax.ejb.CreateException吧。
    或者J2EE.jar包没找到的。
      

  7.   

    我的import语句:
    import java.io.*;
    import java.util.Hashtable;
    import javax.ejb.CreateException;
    import javax.naming.InitialContext;
    import javax.servlet.*;
    import javax.servlet.http.*;
    已经加进了javax.ejb.CreateException;我现在在classpath里面加上了加j2ee.jar,还有我打包后的EJB(Hello.jar),但是还是报这个错,把try块去掉后就正常
      

  8.   

    我也碰到过这种问题,现在还不知道怎么解决,其实就是servlet或其他应用程序如何访问ejb的问题,这个真是火。我觉得你这个很有可能是找不到ejb。
      

  9.   

    我也被这个问题困扰两个星期了。一直没有解决呢。各位高手能不能写一个详细点的解决办法
    我在jsp中也是出现NoClassDefFoundError:错误
    package testbean does not exist
    <%@ page import="testbean.*" %>
    在jsp中要import ejb的接口要怎么设置classpath。我用的是weblogic8 服务器。跪求大家多帮忙啊。
      

  10.   

    能不能帮我们java新手解答一下啊。