RMI + socket - Programmation
Marsh Posté le 06-07-2002 à 11:53:07
ton client et ton serveur sont sur la meme machine? Quel OS?
Marsh Posté le 06-07-2002 à 11:55:13
client et serveur sur la meme machine oui .
os : SuSE linux 7.1
Marsh Posté le 06-07-2002 à 12:01:42
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 :
|
où rmi.policy contient
Code :
|
Marsh Posté le 06-07-2002 à 15:48:06
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 !!!
Marsh Posté le 06-07-2002 à 16:00:15
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?
Marsh Posté le 06-07-2002 à 16:00:58
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)
Marsh Posté le 06-07-2002 à 16:06:17
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 .
Marsh Posté le 06-07-2002 à 16:13:04
c bien sur le port 1800 que tu enregistres tes objets ?
Marsh Posté le 06-07-2002 à 16:24:56
//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);
}
}
Marsh Posté le 06-07-2002 à 11:50:42
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é ?