2016-06-15 4 views
0

와 함께 Rmi Server 클라이언트 원격 연결 최소한 다음과 같은 내 관점에서 간단한 질문이 아닙니다. Rmi Server 속성을 올바르게 만들었습니다.다운로드 코드 localhost

서버 내부 처음으로 rus 파일을 만들거나 이미 있으면 덮어 씁니다. (1)

저는 성공적으로 rmi 클라이언트를 만들었습니다. 프로젝트가 동일한 프로젝트의 클라이언트 클래스와 잘 동작하는지 테스트합니다.

일부 Rmi 인터페이스에서 클라이언트 객체를 매개 변수 (2)로 전달해야합니다.

여기에서 문제가 시작됩니다. 내 Rmi 클라이언트를 여러 번 실행해야하지만 스레드를 사용하지 않아야합니다. 각 프로젝트 (클라이언트 프로젝트)마다 동일한 코드가 있고 거기에서 실행되는 다른 프로젝트를 만들어야합니다. 내가 서버에서 클라이언트를 실행하면 프로젝트는 완벽하게 실행,하지만 난 다른 멀어진 클라이언트를 실행하면 내가 인터넷 검색 및 인터넷 검색과 나는 보안 관리자에서 필요하다고 보았다 보안 Mangager 그래서

run: 
Exception in thread "main" java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "connect,resolve") 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) 
    at java.security.AccessController.checkPermission(AccessController.java:884) 
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
    at java.lang.SecurityManager.checkConnect(SecurityManager.java:1051) 
    at java.net.Socket.connect(Socket.java:584) 
    at java.net.Socket.connect(Socket.java:538) 
    at java.net.Socket.<init>(Socket.java:434) 
    at java.net.Socket.<init>(Socket.java:211) 
    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(RMIDirectSocketFactory.java:40) 
    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(RMIMasterSocketFactory.java:148) 
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:613) 
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:216) 
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:202) 
    at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:342) 
    at sun.rmi.registry.RegistryImpl_Stub.lookup(Unknown Source) 
    at java.rmi.Naming.lookup(Naming.java:101) 
    at Client.<init>(Client.java:69) 
    at Client.main(Client.java:142) 
C:\Users\blue-icon\AppData\Local\NetBeans\Cache\8.1\executor-snippets\run.xml:53: Java returned: 1 
BUILD FAILED (total time: 1 second) 

나에게 일반적인 오류를 제공 실패 원격 클라이언트에 권한을 부여하기 위해 코드 낭포 내가 서버에 보안 관리자를 추가하지만 난 내 파일 스트림을 사용하기 때문에 (1) 나에게 오류를 제공하는 서버를 다운로드

Exception in thread "main" java.security.AccessControlException: access denied ("java.io.FilePermission" "Subscribe.txt" "read") 
    at java.security.AccessControlContext.checkPermission(AccessControlContext.java:472) 
    at java.security.AccessController.checkPermission(AccessController.java:884) 
    at java.lang.SecurityManager.checkPermission(SecurityManager.java:549) 
    at java.lang.SecurityManager.checkRead(SecurityManager.java:888) 
    at java.io.File.exists(File.java:814) 
    at RMIServer03.checkFile(RMIServer03.java:132) 
    at RMIServer03.<init>(RMIServer03.java:46) 
    at RMIServer03.main(RMIServer03.java:56) 

(2) 컴파일 질수 내 서버 및 인터페이스를 클라이언트 프로젝트의 인스턴스없이 서버 프로젝트에 있기 때문에 나는 엉덩이 매개 변수를 전달해야합니다. 내가 말했지 어떤 도움이 필요합니까?

답변

0

잘못 읽었습니다. 서버가 아닌 클라이언트에서 보안 관리자가 필요합니다.