sql >> Base de Datos >  >> RDS >> Oracle

Ejecución de una aplicación RMI de muestra

ComputeEngine exception:
java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "connect,resolve")

Está utilizando un administrador de seguridad y no ha otorgado ese permiso en su archivo .policy.

-Djava.security.manager -Djava.rmi.server.codebase=file:/Users/name/Documents/workspace/PiComputationRM/src/compute/compute.jar -Djava.security.policy=/Users/name/Documents/workspace/PiComputationRM/server.policy

Varios problemas allí:

  • un archivo:el código base no funcionará a menos que especifique una ubicación compartida que sea visible por ese nombre para el cliente y el Registro. Esto no parece uno de esos.

  • debe verificar si ese es el nombre correcto para el archivo de política

  • ni siquiera necesita un administrador de seguridad o una política en el servidor, a menos que el cliente esté configurando su propia base de código y le proporcione clases. Eso no sucede en este ejemplo.

-Djava.security.policy=/Users/name/Documents/workspace/PiComputationRM/client.policy

Vuelva a comprobar este nombre.

java -Djava.security.policy="server.policy" src/engine/ComputeEngine.java
Error: Could not find or load main class src.engine.ComputeEngine.java

Por supuesto que sí. Le diste un comando de compilación a la JVM. Utilice el comando proporcionado en el tutorial. No nombra archivos .java a la JVM.

En su lugar, debería haber verificado dos veces su trabajo con el tutorial. Has leído mal el tutorial en al menos dos lugares.

También me preguntaría si realmente necesita la función de base de código. Comenzaría por eliminarlo, y los gerentes de seguridad, por completo, y simplemente hacer que funcione sin ellos. Es demasiada complicación para un primer proyecto RMI.