你的ejb到底是entitybean还是sessionbean ???
这是sessionbean:
web.poHome home = (web.poHome) javax.rmi.PortableRemoteObject.narrow(objRef,poHome.class);//正常
      web.po oPO = home.create() ;//正常
然后调用entitybean...,再调用sayHello方法...entitybean:
web.poHome home = (web.poHome) javax.rmi.PortableRemoteObject.narrow(objRef,poHome.class);//正常
      然后就可以直接home.sayHello()了...
      

解决方案 »

  1.   

    哦,刚才写错了...
    sessionbean,可以直接这样写呀...oPO.sayHello();
      

  2.   


          web.po oPO = home.create() ;//正常
    这就是创建了一个bean实例.然后调用bean的方法...
      

  3.   

    我用的是session bean,po.java的代码如下:
    package web;import javax.ejb.*;
    import java.util.*;
    import java.rmi.*;
    public interface po extends javax.ejb.EJBObject
    {
    }
    在po.java里面根本就没有 sayHello()方法呀,这个方法是在 poBean里面实现的呀!!
      

  4.   

    po里面要加上sayHello()方法!!!
    只加上一个声明即可
    比如public 返回类型 sayHello(参数);
    自己加呀.没有当然不能调用 !!!
      

  5.   

    谢谢 {鹤清风 为了老婆多挣钱} 的回答
    我现在是加了,但又报了另外一个错误,如下:javax.naming.LinkException: . Root exception is javax.naming.NameNotFoundException: Unable to resolve 'app/ejb/po.jar#so/local-home' Resolved: 'app/ejb' Unresolved:'po.jar#so' ; remaining name 'po.jar#po/local-home' <> 
      

  6.   

    这可能是你的配置文件有问题,检查一下你的ejb-jar.xml和weblogic-ejb-jar.xml两个文件。
      

  7.   

    看看你的ejb的jndi name到底是什么 ???
    再就是发布是否成功了 ???
      

  8.   

    发布是成功了,在console里是可以看到的,Jndi name是po