2012-12-08 1 views
2

Java RMI에 약간의 문제가 있습니다.Java RMI - 레지스트리가 존재하는지 확인하십시오.

레지스트리가 있는지 확인할 수 있습니까? 이 코드 줄은 저에게 레지스트리를 제공하기로되어 있습니다.

LocateRegistry.getRegistry(ip, Registry.REGISTRY_PORT); 

그러나 레지스트리를 찾을 수없는 잘못된 IP 주소 나 IP 주소로이 메소드를 호출하면 메소드가 중단됩니다.

그래서 내 질문에 어떻게 든 getRegistry()를 호출하기 전에 특정 IP 주소에 레지스트리가 있는지 확인할 수 있습니까?

답변

2

아니요. 어쨌든 자원의 가용성을 테스트하는 가장 좋은 방법은 리소스를 사용하는 것입니다. 이 경우 lookup()을 호출하고 예외를 catch하십시오. 당신은 어쨌든 그것을해야합니다, 그래서 그것을 두 번하는 것은 꽤 무의미합니다.

+0

본 적이 있습니다. 그게 정확히 어떻게했는지. 문제는 getRegistry() 메서드가 프로그램을 차단한다는 것입니다. 몇 분 후에 메서드가 반환 된 다음 조회가 예외를 throw하는지 확인할 수있었습니다. 내 유스 케이스에서는 불행히도 너무 느립니다. –

+0

@ X.X_Mass_Developer getRegistry() 메소드는 프로그램을 차단해서는 안됩니다. 네트워크 작업을 수행하지 않습니다. lookup() 차단을 상상할 수 있습니다 : getRegistry()가 아닙니다. – EJP

+0

분명히 당신 말이 맞습니다! 차단중인 조회입니다. 그래서 어떻게 든 getRegistry()에 의해 반환 된 레지스트리가 유효한지 확인할 수 있습니까? 내가 잠그고있는 서버를 확인하기 위해 list()를 호출하면 거기에 블록이 있습니다. –

관련 문제