2010-02-24 6 views
1

Je rencontre des problèmes pour essayer de connecter mon programme Java à 2 sockets différentes. Fondamentalement, je veux initialiser mon serveur RMI (connexion au port 1099) et ensuite initialiser PrologBeans sur le port 10002. L'initialisation semble fonctionner correctement pour les deux, mais dès que j'essaie d'accéder au prologBeans, j'obtiens l'erreur suivante:Java RMI - Problèmes d'autorisation de socket

Exception in thread "main" java.security.AccessControlException: access denied 

    (java.net.SocketPermission 127.0.0.1:10002 connect,resolve) 
at java.security.AccessControlContext.checkPermission(AccessControlContext.java:323) 
at java.security.AccessController.checkPermission(AccessController.java:546) 
at java.lang.SecurityManager.checkPermission(SecurityManager.java:532) 
at java.lang.SecurityManager.checkConnect(SecurityManager.java:1034) 
at java.net.Socket.connect(Socket.java:519) 
at java.net.Socket.connect(Socket.java:475) 
at java.net.Socket.<init>(Socket.java:372) 
at java.net.Socket.<init>(Socket.java:186) 
at se.sics.prologbeans.PrologSession.connectToServer(PrologSession.java:511) 
at se.sics.prologbeans.PrologSession.initSend(PrologSession.java:442) 
at se.sics.prologbeans.PrologSession.send(PrologSession.java:368) 
at se.sics.prologbeans.PrologSession.executeQuery(PrologSession.java:331) 
at api.ActionRetriever.logEvent(ActionRetriever.java:68) 
at contract.ContractManager.log_event(ContractManager.java:87) 
at gui.RMITrial.main(RMITrial.java:39) 

J'ai aussi un fichier de stratégie (dans le paquet où mon code RMI est est-ce même le bon endroit pour placer le fichier de stratégie ou devrait-il être dans le paquet par défaut.?), qui est fixé à:

grant { 
permission java.security.AllPermission;}; 

Je me demandais si quelqu'un avait une idée de pourquoi je reçois l'erreur SocketPermission? Mes paramètres d'autorisation sont-ils incorrects?

Toute aide serait grandement appréciée.

Merci.

Répondre

1

Vous devez inclure l'argument VM -Djava.security.policy = chemin/vers/Politique/fichier ... puis votre fichier de stratégie doit être lu et tout ira bien :)