2010-02-24 8 views
1

자바 프로그램을 2 개의 다른 소켓에 연결하는 데 문제가 있습니다. 기본적으로 내 RMI 서버 (포트 1099에 연결)를 초기화하고 포트 10002에서 PrologBeans를 초기화하려고합니다. 초기화 작업은 두 가지 모두 제대로 작동하는 것으로 보이지만 prologBeans에 액세스하려고하면 다음 오류가 발생합니다.자바 RMI - 소켓 권한 문제

Exception in thread "main" java.security.AccessControlException: access denied 

    (java.net.SocketPermission 127.0.0.1:10002 connect,resolve) 
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 
at java.security.AccessController.checkPermission(AccessController.java:546) 
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034) 
at java.net.Socket.connect(Socket.java:519) 
at java.net.Socket.connect(Socket.java:475) 
at java.net.Socket.<init>(Socket.java:372) 
at java.net.Socket.<init>(Socket.java:186) 
at se.sics.prologbeans.PrologSession.connectToServer(PrologSession.java:511) 
at se.sics.prologbeans.PrologSession.initSend(PrologSession.java:442) 
at se.sics.prologbeans.PrologSession.send(PrologSession.java:368) 
at se.sics.prologbeans.PrologSession.executeQuery(PrologSession.java:331) 
at api.ActionRetriever.logEvent(ActionRetriever.java:68) 
at contract.ContractManager.log_event(ContractManager.java:87) 
at gui.RMITrial.main(RMITrial.java:39) 

또한 (.가 내 RMI 코드가 패키지에 정책 파일을 배치 할이도 올바른 위치를 또는 기본 패키지에 있어야?) 정책 파일이 설정되는 :

grant { 
permission java.security.AllPermission;}; 

나는 SocketPermission 오류가 발생하는 이유에 대해 누구나 알고 있는지 궁금합니다. 내 권한 설정이 잘못 되었습니까?

도움을 주시면 감사하겠습니다.

감사합니다.

답변

1

당신은 VM 인수 -Djava.security.policy의 = 경로에 /이/정책/파일 ... 등을 포함 할 필요가 다음 정책 파일을 읽을 수 있어야하고 모든 :)

잘한다