做一个涉及到rmi调用的项目,当我采用不编译jar包引用的方式把客户端打包成可执行jar包时,会产生如下错误:
java.rmi.UnmarshalException: error unmarshalling return; nested exception is:
java.net.MalformedURLException: unknown protocol: rsrc
这个问题跟IDE有关系,我用的是myeclipse 8.5版本。问题的解决可以用下图的打包方式解决:即选择“Extract required libraries into generated JAR”。则不会产生上述的报错。原因在于rmi在调用远程对象时必须要求服务器端远程对象的接口,实现类与客户端的接口存放路径完全一致,而我的rmi客户端是在工程的引用里,如果不编译引用就会找不到服务器端的远程对象,从而产生错误。