最近在看HeadFirst 设计模式,看到代理的部分,在书中有涉及RMI的代码如下:
1 | public static void main(String[] args) { |
在调试的时候,出现了几种错误,在此记录以下
错误1:
1 | javax.naming.ServiceUnavailableException [Root exception is java.rmi.ConnectException: Connection refused to host: localhost; nested exception is: |
原因:未启动rmiregistry
命令start rmiregistry
错误2:
1 | javax.naming.CommunicationException [Root exception is java.rmi.ServerException: RemoteException occurred in server thread; nested exception is: |
原因:虽然启动了start rmiregistry,但是main的启动是通过eclipse启动,未在eclipse project的/build/classes或/bin目录下启动
无法找到定义的IService类,因为它是定义为remote的
要从folder is the root of your built files目录启动start rmiregistry命令。