ComputeEngine exception:
java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "connect,resolve")
U gebruikt een beveiligingsbeheerder en u hebt die toestemming niet verleend in uw .policy-bestand.
-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
Verschillende problemen daar:
-
een bestand:codebase zal niet werken tenzij het een gedeelde locatie specificeert die met die naam zichtbaar is voor de client en het register. Dit lijkt er niet op.
-
je moet controleren of dat de juiste naam is voor het polisbestand
-
je hebt zelfs geen beveiligingsmanager of -beleid op de server nodig, tenzij de client zijn eigen codebase instelt en lessen aan je gaat geven. Dat gebeurt in dit voorbeeld niet.
-Djava.security.policy=/Users/name/Documents/workspace/PiComputationRM/client.policy
Controleer deze naam nogmaals.
java -Djava.security.policy="server.policy" src/engine/ComputeEngine.java
Error: Could not find or load main class src.engine.ComputeEngine.java
Natuurlijk deed je het. Je hebt een compileropdracht gegeven aan de JVM. Gebruik de opdracht in de zelfstudie. U geeft geen .java-bestanden aan de JVM.
In plaats daarvan had je je werk moeten vergelijken met de tutorial. Je hebt de tutorial op ten minste twee plaatsen verkeerd gelezen.
Ik vraag me ook af of je de codebase-functie echt nodig hebt. Ik zou beginnen met het verwijderen, en de beveiligingsmanagers, helemaal, en het gewoon laten werken zonder hen. Het is een te grote complicatie voor een eerste KMI-project.