Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Executando um aplicativo RMI de amostra

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

Você está usando um gerenciador de segurança e não concedeu essa permissão em seu arquivo .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

Vários problemas aí:

  • a file:codebase não funcionará a menos que especifique um local compartilhado que seja visível por esse nome para o cliente e o Registro. Isso não parece um desses.

  • você precisa verificar se esse é o nome correto para o arquivo de política

  • você nem precisa de um gerenciador de segurança ou política no servidor, a menos que o cliente esteja configurando sua própria base de código e forneça classes para você. Isso não acontece neste exemplo.
-Djava.security.policy=/Users/name/Documents/workspace/PiComputationRM/client.policy

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

Claro que você fez. Você deu um comando do compilador para a JVM. Use o comando fornecido no tutorial. Você não nomeia arquivos .java para a JVM.

Em vez disso, você deveria estar verificando seu trabalho em relação ao tutorial. Você interpretou mal o tutorial em pelo menos dois lugares.

Eu também questionaria se você realmente precisa do recurso de base de código. Eu começaria removendo-o, e os gerentes de segurança, completamente, e apenas o faria funcionar sem eles. É muita complicação para um primeiro projeto RMI.