2012-03-03 3 views
-1

RMI를 사용하여 몇 가지 테스트를하려고합니다.RMI 코드베이스, 로컬 코드베이스에 연결

나는 호출해야하는 메소드가있는 클래스가있는 .jar 파일이 있습니다. 내 netbeans 프로젝트에서 내 Remote 인터페이스 인 ShareBroker에 연결해야하는 TestClient 클래스가 있습니다. 내 문제는 java.rmi.server.codebase의 올바른 주소를 설정하는 방법과 ShareBrooker를 조회하기 위해 TestClient에 있어야하는 주소입니다.

여러 주소와 조합을 시도했지만 작동하지 못했습니다. 이 테스트에서는 코드베이스를 로컬 디렉토리에 설정해야합니다.

답변

0

java.rmi.server.codebase 등록 정보는 원격 객체를 내보내는 JVM에서 설정됩니다. 일반적으로 이것은 서버 JVM입니다.

코드베이스 URL은이 서버의 클라이언트가 액세스 할 수있는 디렉토리 또는 JAR 파일을 참조해야합니다. 따라서 클라이언트가 액세스 할 수있는 웹 서버를 나타내는 HTTP 또는 FTP URL이거나 클라이언트의 로컬 파일 시스템을 참조하는 URL : file이어야합니다.

후자의 경우, (1) 서버는 코드베이스 속성을 올바르게 설정하기 위해 클라이언트의 파일 시스템 구조의 레이아웃을 알아야 할 것이며 구성상의 어려움이 있으며 (2) 로컬 디렉토리/JAR 파일을 클라이언트의 CLASSPATH에 포함시키고 코드베이스 시스템을 그대로 두는 것만으로도 충분합니다.

즉, 로컬 파일 시스템을 참조하는 코드베이스에는 전혀 포인트가 없습니다.

+0

확인

다음 링크가 유용 할 수 있습니다 .. 그럼 내가 코드베이스를 설정할 필요가 없습니다 ...하지만 여전히 내가 왜 jar 파일에 액세스 할 수 없습니다? //192.168.0.6:40090/ShareBroker는보고있는 주소이고 서버는 그 포트에서 수신 대기하고 있습니다. 예외 $ Proxy0은 ShareBroker로 캐스팅 될 수 없습니다 – Giannis

+0

@latusaki'ShareBroker '란 무엇입니까? 당신의 실제 문제는 무엇입니까? – EJP

0

당신은 (당신이 클라이언트 클래스 경로에 설정할 수있는 client.This 사용할 수있는 스텁을해야 원격 서비스에 액세스 할 수있는 클라이언트의 경우는 java.rmi.Remote 인터페이스

+0

이 문제는 거의 1 년 전에 해결되었습니다. tho를 고맙게 여겨 줘서 고마워. – Giannis

0

을 확장 할 수 없습니다 원격 인터페이스를 확인하시기 바랍니다 프로젝트 빌드 경로에 생성 된 스텁 포함 가능).

클라이언트가 클래스 경로에 스텁이없는 경우 java.rmi.server.codebase 등록 정보를 원격 서비스에 설정해야합니다. 클라이언트가 원격 메소드를 호출하면 클라이언트는 해당 메소드를 다운로드합니다. 지정된 코드베이스의 스텁 클래스 https://community.oracle.com/thread/1180559?start=0 http://docs.oracle.com/javase/7/docs/technotes/guides/rmi/codebase.html