out.println("出错了~");
请把这一句改为:
out.println(e.toString());将错误信息显示出来,以便帮助分析错误产生的原因。

解决方案 »

  1.   

    可能错误原因:1 helloWorldHome hm = (helloWorldHome) PortableRemoteObject.narrow(hh,helloWorldHome.class);
    ~~~~~~~~~~~~~~
    是不是写错了,一般类名首字母都是大写的。
      

  2.   

    将exception打出来,才能分析是出的什么错,看表面现象,好像是你的ejb的class没有加到server的classpath里去
      

  3.   

    helloWorld-demo是你的ejb的jndi,看看是不是大小的问题.
      

  4.   

    jndi的大小写没有任何问题——因为已经提示找到jndi(Object hh = ctx.lookup("helloWorld-demo");该句已经执行正确)
    to whyxx:
    对ejb只需要将remote接口跟home接口放再webapplication的class路径下,对吗?我已经将remote接口和home接口放再WEB-INF/classes/lee/下。否则会在编译阶段出错。顺便说一句,我的测试用client都是自己写的,一点问题都没有!
      

  5.   

    to:trumplet(检查)
    下面是改为你所说后的错误
    java.lang.ClassCastException: Cannot narrow remote object to lee.helloWorldHome
      

  6.   

    根据你的提供的出错信息
    猜测是由于jsp导入的remote跟home接口与ejb的中的remote,home接口没有放在同一个包中。
    注意:client中的remote,home接口应与ejb中的接口使用同一package语句。
      

  7.   

    web项目需要在web.xml里申明ejb的引用,然后用才能用