-1
rmi 응용 프로그램을 만들려고합니다. 클라이언트 전송 파일을 서버에 보내려고합니다. 하지만 코드를 실행할 때 보안 관리자 예외가 발생합니다.java.security.AccessControlException을 해결하는 방법
import java.rmi.Naming;
import java.rmi.RMISecurityManager;
import java.util.Scanner;
public class StartFileClient {
public static void main(String[] args) {
if (System.getSecurityManager() == null)
System.setSecurityManager(new RMISecurityManager());
try{
FileClient c=new FileClient("imed");
FileServerInt server=(FileServerInt)Naming.lookup("rmi://localhost/abc");
server.login(c);
System.out.println("Listening.....");
Scanner s=new Scanner(System.in);
while(true){
String line=s.nextLine();
}
}catch(Exception e){
e.printStackTrace();
}
}
} 여기
서버 측이다 : 여기서 클라이언트 쪽import java.rmi.Naming;
public class StartFileServer {
public static void main(String[] args) {
// TODO Auto-generated method stub
try{
java.rmi.registry.LocateRegistry.createRegistry(1099);
FileServer fs=new FileServer();
fs.setFile("itcrowd.avi");
Naming.rebind("rmi://localhost/abc", fs);
System.out.println("File Server is Ready");
}catch(Exception e){
e.printStackTrace();
}
}
} 또한
, 난 파일 security.policy를 생성
grant {
permission java.security.AllPermission;
};
도와 주셔서 감사합니다.
정책 파일을 내 폴더 패키지에 넣습니다. –
나는 그것을 제거합니다. 하지만 같은 오류가 발생합니다 : 액세스가 거부되었습니다 ("java.net.SocketPermission" "127.0.0.1:1099" "connect, resolve"). –
정책 파일을 '폴더 패키지'에 넣으면 특히 아무 것도 달성하지 못합니다 , 그리고 어느 쪽도 그것을 제거하지 않을 것이다. 당신은 내 대답을 실제로 읽은 것 같지 않습니다. – EJP