Necesito ayuda con RMI
Al ejecutar el un programa implementado en un servidor RMI me da el siguiente error:
java.security.AccessControlIException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve).
Como podria resolverlo.
Nota: me puede afectar el cortafuegos que tengo instalado?
java.security.AccessControlIException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve).
Como podria resolverlo.
Nota: me puede afectar el cortafuegos que tengo instalado?
Hola Jose!
No es tu cortafuegos si es que estas trabajando local.
Lo que pasa es que al correr tu aplicación no haz agregado
la fila de 'policy' de seguridad que lo haces con:
-Djava.security.policy=/home/juanz/rmi_ex/lib/rmi.policy
donde rmi.policy es la una fila que se ve más o menos asi:
grant {
// Allow everything for now
permission java.security.AllPermission;
};
en resumen:
1)corres rmiregistry:
C:start rmiregistry (o unix) unix%>rmiregisty
2)corres el servidor:
unix%>java -classpath /home/juanz/rmi_ex/lib/elevator.jar
-Djava.security.policy=/home/juanz/rmi_ex/lib/rmi.policy
-Djava.rmi.server.codebase=file:/home/juanz/rmi_ex/elevatorlibelevator.jar
elevator.Elevators -top 5 -number 5 -rmi
3)corres el cliente:
........
Gracias ante todo.
Estoy utilizando windows y el unico policy que encuentro es java.policy en el directorio C:jdk1.3.1_01jrelibsecurity.
Por lo tanto la forma de ejecutar seria:
java -Djava.security.policy=C:jdk1.3.1_01jrelibsecurity MiServidor.
Y la linea:
permission java.security.AllPermission;
la incluyo en el fichero java.policy.
Estoy utilizando windows y el unico policy que encuentro es java.policy en el directorio C:jdk1.3.1_01jrelibsecurity.
Por lo tanto la forma de ejecutar seria:
java -Djava.security.policy=C:jdk1.3.1_01jrelibsecurity MiServidor.
Y la linea:
permission java.security.AllPermission;
la incluyo en el fichero java.policy.
No se si ya lo habras resuelto todo o no, pero si todavia estas depurando la aplicacion este podria ser un buen consejo:
Crea un fichero .bat que contenga la siguiente linea:
java -Djava.security.policy=java.policy MiServidor
y copia un fichero java.policy al directorio donde esten tus clases.
Un fichero estandar "java.policy" adecuado podria ser:
grant {
permission java.net.SocketPermission "*:1024-65535", "connect,accept";
permission java.security.AllPermission;
};
Espero que te funcione todo bien.
Crea un fichero .bat que contenga la siguiente linea:
java -Djava.security.policy=java.policy MiServidor
y copia un fichero java.policy al directorio donde esten tus clases.
Un fichero estandar "java.policy" adecuado podria ser:
grant {
permission java.net.SocketPermission "*:1024-65535", "connect,accept";
permission java.security.AllPermission;
};
Espero que te funcione todo bien.
Hola, he visto este foro, (aunq es antiguo lo q esta escrito) y me pasa algo muy parecido, no me coge el rmi.policy q le agregue, la ruta -Djava.security.policy= .... esta bien, ya no se q hacer, pq no me detecta ni los fallos de sintaxis dentro del archivo rmi.policy.
si alguien puede ayudarme,
Muchas gracias
si alguien puede ayudarme,
Muchas gracias