ComputeEngine exception:
java.security.AccessControlException: access denied ("java.net.SocketPermission" "127.0.0.1:1099" "connect,resolve")
आप एक सुरक्षा प्रबंधक का उपयोग कर रहे हैं और आपने अपनी .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
वहां कई समस्याएं:
-
एक फ़ाइल:कोडबेस तब तक काम नहीं करेगा जब तक कि यह एक साझा स्थान निर्दिष्ट नहीं करता है जो उस नाम से क्लाइंट और रजिस्ट्री को दिखाई देता है। यह उनमें से एक जैसा नहीं लगता।
-
आपको यह जांचना होगा कि क्या यह पॉलिसी फ़ाइल के लिए सही नाम है
-
आपको सर्वर में सुरक्षा प्रबंधक या नीति की भी आवश्यकता नहीं है, जब तक कि क्लाइंट अपना कोडबेस सेट नहीं कर रहा है और आपको कक्षाएं प्रदान करने जा रहा है। इस उदाहरण में ऐसा नहीं होता है।
-Djava.security.policy=/Users/name/Documents/workspace/PiComputationRM/client.policy
इस नाम को दोबारा जांचें।
java -Djava.security.policy="server.policy" src/engine/ComputeEngine.java
Error: Could not find or load main class src.engine.ComputeEngine.java
बिलकुल तुमने किया। आपने JVM को एक कंपाइलर कमांड दिया है। ट्यूटोरियल में दिए गए कमांड का उपयोग करें। आप JVM को .java फ़ाइलों का नाम नहीं देते हैं।
आपको इसके बजाय ट्यूटोरियल के विरुद्ध अपने काम की दोबारा जांच करनी चाहिए थी। आपने कम से कम दो स्थानों पर ट्यूटोरियल को गलत तरीके से पढ़ा है।
मैं यह भी सवाल करूंगा कि क्या आपको वास्तव में कोडबेस सुविधा की आवश्यकता है। मैं इसे और सुरक्षा प्रबंधकों को पूरी तरह से हटाकर शुरू करूंगा, और बस इसे उनके बिना काम करना शुरू कर दूंगा। पहली आरएमआई परियोजना के लिए यह बहुत अधिक जटिलता है।