-
작업 String url= “rmi://xxx.xxx.xxx.xxx/Echo”; 경로로 rmi를 수행.
-
문제 java RMI시 Connection refused to host:xxx.xxx.xxx.xxx 예외 발생.
- 원인
- 서버측에 rmiregistry가 실행되어 있지 않음.
- rmiregistry에 해당 Remote Object 서비스(Echo)가 등록되어 있지 않음.
- RMI name service를 제공하는 포트가 방화벽에 막혀있음.
- Reomte Object 서비스를 제공하는 포트가 방화벽에 막혀있음.
- 해결
- rmiregistry 실행. ex) prompt>rmiregistry &
- 해당 Remote Object 서비스(Echo) 실행. ex) prompt>java Echo &
- 디폴트로 RMI name service를 제공하는 포트번호는 1099번이므로 해당 포트를 열어준다. 또는 rmiregistry 실행 시 RMI name service를 제공하는 포트번호를 지정하고 해당 포트를 열어준다. ex) rmiregistry 포트번호 & 또는 코드 상에서 RMI name service를 제공하는 포트번호를 지정하고 해당 포트를 열어준다. ex) LocateRegistry.createRegistry(포트번호);
- 코드상에서 Remobe Object 서비스를 제공하는 포트를 지정하고 해당 포트를 열어준다. ex) UnicastRemoteObject를 상속받는 클래스의 생성자에서 super(포트번호)