RMI 코딩을 배우려고하고 있는데 RMI의 서버 측을 실행하면 연결이 거부됩니다. 이것은 내가 단순히 코드를 실행 구현 된 인터페이스는 그대로 구현을위한 코드가 문제가되지 않는다고 생각 내 서버의 주요 방법localhost에서 RMI 연결이 거부되었습니다.
public static void main(String[] args)throws Exception {
Implementation impl=new Implementation();
Naming.rebind("//localhost:2020/RMI", impl);
System.out.println("Implementation has been bind to the name RMI and is ready for use");
}
입니다. 내가 얻는 예외는 이것입니다.
Exception in thread "main" java.rmi.ConnectException: Connection refused to host: localhost; nested exception is:
java.net.ConnectException: Connection refused: connect
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
at sun.rmi.server.UnicastRef.newCall(Unknown Source)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Unknown Source)
at epl362Project.Server.main(Server.java:10)
Caused by: java.net.ConnectException: Connection refused: connect
at java.net.DualStackPlainSocketImpl.connect0(Native Method)
at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
at java.net.PlainSocketImpl.connect(Unknown Source)
at java.net.SocksSocketImpl.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.connect(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at java.net.Socket.<init>(Unknown Source)
at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
... 7 more
내가 뭘 잘못하고 있니? 클라이언트 및 서버 측 모두 내 랩톱에서 실행됩니다. 이는 단지 운동 일뿐입니다. 뭔가 빠졌거나 내 코드에 문제가 있습니까? 제게 대답을 해주는 것 외에 제발 왜 그런지 설명해주세요. 단지 그것을 작동시키고 싶지 않기 때문에 배우려고 노력하고 있습니다.
** 편집 내 코드가 작동하지 않는 이유를 발견했습니다. 내가 말한 코드 라인이 누락되었습니다.
LocateRegistry.createRegistry(2020);
이 질문은 stackoverflow에서 다른 질문에서 발견되었습니다. 그러나 RMI가 제대로 작동하기 위해이 코드가 필요한 이유에 대한 설명도 없었습니다. 누구든지 설명이 있습니까?
2020 년은 어떨까요? RMI가 실행되는 특정 포트 또는 네트워크 연결 또는 다른 포트입니까? (이것은 나에게 새로운 것입니다) 또는 내가 원하는 항구를 둘 수 있습니까? –
복사 한 코드 샘플에서 누군가가 사용하기로 결정한 특정 포트입니다. 일반 레지스트리 포트는 1099입니다. – EJP
코드를 복사하지 않았습니다. YouTube 튜토리얼을 보았습니다. P 도움을 준 사람 –