java.rmi.UnmarshalException:无法识别的方法哈希:远程对象不支持的方法

时间:2015-08-17 09:43:24

标签: java rmi

我有两个Web应用程序,第一个RMIServer包含以下

public interface EasyPDFGeneratorRemoteInterface extends Remote {

public File generatePDFAmin(File sourceFile) throws RemoteException ;
}

public class EasyPDFGenerator extends UnicastRemoteObject 
    implements EasyPDFGeneratorRemoteInterface {


    public File generatePDFAmin(File sourceFile)  {
//implementation details....
}

然后在注册表中注册了EasyPDFGenerator类型的对象。

第二个包含

public interface EasyPDFGeneratorRemoteInterface extends Remote {

public File generatePDFAmin(File sourceFile) throws RemoteException ;
}

class test {

private File generatePDF(File file) {

    File pdfFile = null;
    try {

        EasyPDFGeneratorRemoteInterface easyPDFGenerator = getRemoteEasyPDFGenerator();// get the remote object.
        easyPDFGenerator.getClass.getMethods();// the array contains the method generatePDFAmin.
        pdfFile = easyPDFGenerator.generatePDFAmin(file);// throws the exception.

    } catch (RemoteException ex) {

    }

}
}

我不确定因为获取远程对象会导致什么问题,并且它确实包含调用UnmarshalException时抛出的方法。

1 个答案:

答案 0 :(得分:3)

您更改了远程接口定义,但未重新部署受影响的所有.class文件。如果您使用生成的存根,则无法重新生成存根。