Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1780 connectés 

  FORUM HardWare.fr
  Programmation

  RMI + socket

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

RMI + socket

n°172238
nawbacan
==>L'informatique est ma joie
Posté le 06-07-2002 à 11:50:42  profilanswer
 

salut à tous !
voilà j'ai un petit problème dans  mon apprentissage des RMI.
je crée une application dans laquelle un serveur propose 2 services:
stocker_chaine_caractere
lire_chane_caratere
 
j'ai donc défini l'interface du serveur
puis je l'ai implémenté
puis j'ai généré les bouts-clients et bout-serveur.
ensuite j'ai implémenté mon client.
 
ensuite j'ai lancé mon registraire
et lorsque je lance mon serveur j'ai l'erreur suivante :  
"Exeption à l'enristrement: java.security.AccessControlException: access
denied(java.net.SocketPermission 127.0.0.1:1800 connect, resolve)"
 
dans l'implémentation de mon serveur j'ai rajouté la ligne suivante
pour l'autorisation au niveau des socket :  
"SocketPermission nr = new SocketPermission ("localhost:1800",
" connect,resolve" );"
 
pour lancer mon registraire :
rmiregistry 1800 &
 
voyez vous ce que j'aurais oublié, ou alors ce que j'aurais mal  
codé ?

mood
Publicité
Posté le 06-07-2002 à 11:50:42  profilanswer
 

n°172240
darklord
You're welcome
Posté le 06-07-2002 à 11:53:07  profilanswer
 

ton client et ton serveur sont sur la meme machine? Quel OS?

n°172241
nawbacan
==>L'informatique est ma joie
Posté le 06-07-2002 à 11:55:13  profilanswer
 

client et serveur sur la meme machine oui .
 
os : SuSE linux 7.1

n°172245
darklord
You're welcome
Posté le 06-07-2002 à 12:01:42  profilanswer
 

Bon:
 
1. Tu dis avoir donné les droits en connect,accept sur le port en question mais comment fais tu ?
 
2. Utilise tu localhost ou le loopback comme adresse du serveur ou utilise tu le NOM de ta machine. Si oui vérifie ton fichier /etc/hosts
 
De manière générale tu dois lancer ton serveur comme ca:
 

Code :
  1. java -Djava.policy.file=rmi.policy monpack.MaClasse mes params


 
où rmi.policy contient
 

Code :
  1. grant {
  2.   permission java.net.SocketPermission "*:1800", "accept,connect,listen";
  3. }


Message édité par darklord le 06-07-2002 à 12:01:52
n°172289
nawbacan
==>L'informatique est ma joie
Posté le 06-07-2002 à 15:48:06  profilanswer
 

alors j'ai réussi à faire tourner un client et un serveur sur le même
poste mais j'ai pour le moment viré le security manager.
 
mais j'ai l'impression que le problème vient peut-être de ma
machine. En effet j'ai testé le code sur une autre station et il  
n'y a pas de problème. alors que sur ma machine le code merde.
 
et puis à part ça merci Dark_lord , vu les post que tu met, tu  
maîtrise !!!

n°172293
darklord
You're welcome
Posté le 06-07-2002 à 16:00:15  profilanswer
 

nawbacan a écrit a écrit :

et puis à part ça merci Dark_lord , vu les post que tu met, tu  
maîtrise !!!  




 
Bin euh pour ce cas ci j'ai tout simplement eu le meme problème sur une redhat 7.3 il y a 2semaines donc ...
 
Sinon ca marche sur ta machine avec le policy file?

n°172294
darklord
You're welcome
Posté le 06-07-2002 à 16:00:58  profilanswer
 

sinon c pas ta machine le problème, c'est la gestion de la sécurité qui est probablement différente. (si tu as testé ton code sur une machine windows par exemple)

n°172296
nawbacan
==>L'informatique est ma joie
Posté le 06-07-2002 à 16:06:17  profilanswer
 

non le code je l'ai testé sur une autre machine SuSE 7.1.  
je sais absolument pas pourquoi ça ne tourne pas sur la mienne.
quand au sécurity manager, et  bien si je le déclare  et que  
j'utilise la  commande que tu m'as donné pour lancer le serveur  
ça passe toujours pas .  

n°172298
darklord
You're welcome
Posté le 06-07-2002 à 16:13:04  profilanswer
 

c bien sur le port 1800 que tu enregistres tes objets ?


---------------
Just because you feel good does not make you right
n°172301
nawbacan
==>L'informatique est ma joie
Posté le 06-07-2002 à 16:24:56  profilanswer
 

//le code main de mon serveur..
//l'erreur est à un rapport avec si je n'arrive pas à lancer le
//serveur..
public static void main (String args[])
{
 System.setSecurityManager(new RMISecurityManager());
 try {
  String serveurNom= "//localhost:1800/ChaineMemoire";
  ChaineMemoire serveur = new ChaineMemoireImpl();
   
  naming.rebind(serveurNom, serveur);
 }catch (Exception e) {
  system.out.println("exception a l'enregistement:" + e);
}
 
 
 
 
}


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation

  RMI + socket

 

Sujets relatifs
socket ipx/spx et addresse mac[C/C++] Socket sous win
[C++] socket avec des flux[Java] Socket + Timeout + buffer en sortir
Petit truc tout bête en Pascal sous Delphi...(Socket de connection...)[SOCKET] utiliser les adresses MAC
[C] Pb de socket sous Windowsproblème avec RMI en java: HELP!
[ Unix Java ] socket - transfert limité à 256 octets ?!!![Delphi] Client/Serveur : gérer l'évenement "on error" du socket.
Plus de sujets relatifs à : RMI + socket


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)