IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

API standards et tierces Java Discussion :

Question RMI java


Sujet :

API standards et tierces Java

Vue hybride

denebj Question RMI java 06/02/2007, 17h23
pseudocode avec RMI, il faut que le... 06/02/2007, 17h35
denebj J'arrive pas ça m'énerve... 07/02/2007, 01h16
pseudocode Avec Java 5, tu n'as plus... 07/02/2007, 09h49
denebj Eh bien j'utilise le jdk 1.6... 07/02/2007, 16h11
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 85
    Par défaut Question RMI java
    Salut,

    J'ai une question un peu bête héhé

    J'ai développé une application client/serveur avec les RMI, j'ai codé ça sous un même projet avec Deux packages différents, et ça fonctionne sans problème en local.

    Mon soucis est le suivant, j'ai voulu créer deux , jar un client et un serveur mais le soucis avec les RMI c'est que sur le client j'ai besoin de récupérer l'interface qui se trouve sur le serveur comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Serveur.Interface myInt = ( Serveur.Interface ) Naming.lookup( serverObjectName );
    Serveur étant le packages serveur et interface le nom de l'interface sur le serveur.

    Mais comment je peux faire si j'ai deux .jar pour pouvoir caster mon lookup avec l'interface qui se trouve sur le serveur, donc sur l'autre .jar.

    J'ai essayé d'inclure le jar en tant que lib, ça marche mais le client/serveur ne peuvent fonctionner que sur la même machine.

    Comment on fait c'est assez bizarre

    merci

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    avec RMI, il faut que le client connaisse l'interface de l'objet distant.

    Le plus simple c'est de créer un .jar qui ne contient QUE les interfaces des objets distants. Ce .jar doit etre présent sur la machine client et sur le serveur.

    Pour synchroniser les 2 .jar, tu peux par exemple telecharger (via ftp,http) le .jar depuis le serveur sur le client avant de lancer ton appli.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  3. #3
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 85
    Par défaut
    J'arrive pas ça m'énerve

    J'ai regroupé mes fichiers j'ai ça :

    Package client :
    client_start


    Package serveur :
    Serveur_Start
    SessionImpl => Implémente l'interface


    Package Inter :
    Interface => Interface utilisée par le client et le serveur

    J'ai ajouté SessionImpl_stub.class dans les class du package client.

    J'ai essayé de créer 2 .jar de tout cela, un avec la Main de client et l'autre de serveur. Ca marche sur le même PC mais c'est tout c'est pénible, c'est vraiment du temps perdu bêtement

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Avec Java 5, tu n'as plus besoin de creer le stub avec rmic. Le compilateur javac s'occupe de tout.

    Un exemple complet est dispo chez sun.

    Es-tu sur que ce n'est pas un probleme de sécurité (fichier jre/lib/security/java.policy) ?
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  5. #5
    Membre confirmé
    Inscrit en
    Janvier 2006
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 85
    Par défaut
    Eh bien j'utilise le jdk 1.6 donc c'est aussi bien de ne pas avoir à compiler les stub à la main.

    Pour la sécurité j'ai essayé de rajouter les lignes de security manager mais j'ai une erreur, il me dit :

    Exception in thread "Thread-0" java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)

    Après pour la sécurité je ne sais pas trop, que faudrait-il faire ?

  6. #6
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Au vu de l'erreur, il faut que tu autorises les connexions socket a l'adresse 127.0.0.1 sur le port1099

    Plus serieusement, dans ton fichier java.policy, essaye ca:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    grant { 
    	permission java.net.SocketPermission "*:80-65535","connect,accept,listen,resolve";
            permission java.security.AllPermission;
    };
    si ca marche, il faudra affiner les permissions pour etre un peu moins... permissif.
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

Discussions similaires

  1. [Framework] [RMI] java.rmi.UnmarshalException
    Par YokoSop dans le forum Spring
    Réponses: 12
    Dernier message: 08/12/2010, 15h29
  2. Question endianness Java/C++ embarqué
    Par adn013 dans le forum Langage
    Réponses: 7
    Dernier message: 06/06/2007, 17h47
  3. RMI java.lang.NoClassDefFoundError: DataSetData
    Par wissam dans le forum JBuilder
    Réponses: 7
    Dernier message: 25/05/2007, 21h41
  4. questions relatives à java<=>PDF
    Par subzero82 dans le forum Documents
    Réponses: 24
    Dernier message: 08/05/2007, 15h44
  5. [Java] Question sur Java et les états.
    Par Cassios dans le forum Autres outils décisionnels
    Réponses: 6
    Dernier message: 19/02/2007, 17h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo