Stub 类在什么地方?
可能类加载问题.

解决方案 »

  1.   

    stub类与远程调用类在一个目录,也就是ThreadWatchRmi_Stub.class和ThreadWatchRmi.class是一个目录。
    另外,我servlet如果调用没有返回对象的远程方法时,一切都正常(也就是说:1带void就会调用成功,而2的带String的就会返回错误。
    1.public void NotifyThreadSocket() throws RemoteException;
    2.public String NotifyThreadSocket() throws RemoteException;)
    PS:调用servlet之后报错的信息是:java.lang.AbstractMethodError:
      

  2.   

    java.lang.AbstractMethodError
    根据楼主提供的错误信息推测得出:
    NotifyThreadSocket()这个方法的接口在声明这个方法时是返回的Void
    建议去检查一下这个方法是否在实现的接口中声明过,声明的方法是不是返回的Void
      

  3.   

    也就是这样的,我的服务器(server)暴露了一个远程接口---
    public String NotifyThreadSocket()throws RemoteException,而ThreadWatchRmi是这个接口的实现类。
    当我用一般的java程序去调用(也就是带有main的类)时没有问题;但是当我用resin上面的servlet去调用时就会报错,以下就是resin服务器上的报错信息:
    java.rmi.UnmarshalException:error unmarshalling return;nested exception is:java.lang.ClassNotFoundException:cn.qtone.bankbill.gateserver.thread.ThreadWatchRmi_Stub(no security manager:RMI class loader disabled)
      

  4.   

    servlet和RMI调用没有直接关系
    关键还是你庄机的位子在哪
    这个才是最关键的问题
      

  5.   

    java.lang.AbstractMethodError表示方法没有实现,但实现接口时如果不是抽象类就必须实现所有的方法,据此推断
    1.可能是你的ThreadWatchRmi_Stub.class版本有问题
    2.有两个同名类 而你正好调用的是那个错误的类重新生成ThreadWatchRmi_Stub.class试试