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

java.rmi.UnmarshalException: unrecognized method hash: method not supported by remote object

我有两个 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 的方法。

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