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

Eclipse Java Discussion :

Eclipse et RMI


Sujet :

Eclipse Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Par défaut Eclipse et RMI
    Bonjour à tous, Excusez-moi d'avance pour le long message, mais je voulais présenter mon problème d la plus complète des façons.

    Je travaille actuellemet avec eclipse 3.2 et Je voudrais créer en java, une petite application distribuée
    (à titre de prémice pour une plus grande), avec un module serveur et un module client tournant autour
    de la technologie RMI.

    Mon projet serveur est Nommé "RMIServerTest" est architeturé comme suit:
    Il est constitué d'un package "RMIServerPackage" contenant 2 fichiers soures
    - L'interface à exporter nommée "PublicIterface" dans PublicInterface.java
    - La classe d'implémentation nommée "RemoteObject" de remoteObject.java
    Ce package est lui-même stocké dans le sous-répertoire "src" du répertoire crée pour le projet.
    Je crée donc covenablement l'interface de publication de la méthode distante.

    L'interface est la suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    package RMIServerPackage;
    import java.rmi.*;
     
    public interface PublicInterface extends Remote{
    	// Fonction visible de l'extérieur
    	public String DistantFonction() throws RemoteException;
    }
    L'implementation de l'interface est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
     
    package RMIServerPackage;
    import java.rmi.*;
    import java.rmi.server.*;
    import java.rmi.registry.*;
    import java.net.*;
     
    public class RemoteObject extends UnicastRemoteObject implements PublicInterface{
     
     String MaChaine = "Ceci est la chaie serveur";
     // Costructeur
     RemoteObject() throws RemoteException
     {
       super();
     }
     
      // Méthode distante
      public String DistantFonction() throws RemoteException
      {
         return "[Server Thread " + Thread.currentThread() + "---> " + MaChaine;
      }
     
     
      public static void main(String[] args) {
      // TODO Auto-generated method stub
      System.setSecurityManager(new RMISecurityManager());
      try
      {
        // Déclaration d'un objet disponible dans le service d'annuaire
        RemoteObject NewObject = new RemoteObject();
        // Enrégistrement de cet objet dans le service
        LocateRegistry.createRegistry(1099);
        Naming.bind("RMIObject", NewObject);
        System.out.println("Serveur Lancé");
      }
      catch(Exception e) { e.printStackTrace(); }
     }
    }
    à la compilation, tous se passe bien, les fichiers .class sont corretement crées. Mais quand j'éxécute, j'ai l'exception:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
    java.security.AccessControlException: access denied (java.net.SocketPermission 127.0.0.1:1099 connect,resolve)
    at java.security.AccessControlContext.checkPermission(Unknown Source)
    at java.security.AccessController.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkPermission(Unknown Source)
    at java.lang.SecurityManager.checkConnect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.connect(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at java.net.Socket.<init>(Unknown Source)
    at sun.rmi.transport.proxy.RMIDirectSocketFactory.createSocket(Unknown Source)
    at sun.rmi.transport.proxy.RMIMasterSocketFactory.createSocket(Unknown Source)
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(Unknown Source)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(Unknown Source)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(Unknown Source)
    at sun.rmi.server.UnicastRef.newCall(Unknown Source)
    at sun.rmi.registry.RegistryImpl_Stub.bind(Unknown Source)
    at java.rmi.Naming.bind(Unknown Source)
    at RMIServerPackage.RemoteObject.main(RemoteObject.java:32)
    Suite à cette erreur, je tente quand même de créer les fichiers stub et skeleton par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    I:\>rmic -d I:\Divers\WorkspaceEclipse\RMIServerTest\bin -classpath I:\Divers\WorkSpaceEclipse\RMIServerTest\bin RMIServerPackage.RemoteObject
    et j'obtient bien le fichier stub "RemoteObject_stub.class" dans le répertoire de mes fichier .class, mais pas le fichier skeleton et de plus je n'arrive toujours pas à lancer mon serveur. car j'obtiens la même exception

    Quelqu'un pourrait-il m'aider à y voir plus clair?

  2. #2
    Membre confirmé Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Par défaut RMI me tue pliz pliz help!!!
    Bonjour,
    C'est toujours au sujet de RMI, comme il n'ya pas eu de reaction, je me permet de relancer le debat. je fais tout ce que je peux pour distribuer un objet grace a RMI mais rien a faire, "access denied est omnipresent" alors que je crois avoir le bon code et que mon jdk et mon jre sont compatible (jdk1.5.0_11 et jre1.5.0_11)

  3. #3
    Membre éprouvé Avatar de Tazmanian Devil
    Profil pro
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Par défaut
    Citation Envoyé par yashiro
    Bonjour,
    C'est toujours au sujet de RMI, comme il n'ya pas eu de reaction, je me permet de relancer le debat. je fais tout ce que je peux pour distribuer un objet grace a RMI mais rien a faire, "access denied est omnipresent" alors que je crois avoir le bon code et que mon jdk et mon jre sont compatible (jdk1.5.0_11 et jre1.5.0_11)
    Bonjour,
    Ca doit venir du manque du fichier policy : regarde chez Sun

  4. #4
    Membre confirmé Avatar de yashiro
    Inscrit en
    Mars 2004
    Messages
    214
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 214
    Par défaut
    J'ai fais un tour chez sun, et j'ai télécharger les pages d'exemples.
    Je vais les essayer merci.
    Au fait n'ya-t-il pas une façon de spécifier ces "policy" autre qu'en ligne de commandes? Mieux encore, y'a-t-il une méthode en java permettant de lancer une commande depuis le code java comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("MaCommande")
    en C

  5. #5
    Membre éprouvé Avatar de Tazmanian Devil
    Profil pro
    Inscrit en
    Février 2007
    Messages
    119
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Février 2007
    Messages : 119
    Par défaut
    Citation Envoyé par yashiro
    J'ai fais un tour chez sun, et j'ai télécharger les pages d'exemples.
    Je vais les essayer merci.
    Au fait n'ya-t-il pas une façon de spécifier ces "policy" autre qu'en ligne de commandes? Mieux encore, y'a-t-il une méthode en java permettant de lancer une commande depuis le code java comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    system("MaCommande")
    en C
    Sauf que les policy sont des fichiers d'autorisation qui à mon avis doivent être connus par java lors de l'execution (et pas par ta classe). Par contre il est bien sur possible d'executer des commandes en java avec Runtime.exec par exemple ou de specifier à la volée des propriétés systeme avec System.setProperty


    PS: "passionné de dévelloppement " : développement ne prends qu'un l ( ceci dit avec les meilleures intentions du monde )

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Petit projet RMI sous eclipse
    Par Goupil dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 21/10/2008, 22h49
  2. Configurere les rmi sous eclipse
    Par naima2005 dans le forum Eclipse Platform
    Réponses: 0
    Dernier message: 03/11/2007, 20h16
  3. execution d'un programme sur eclipse utilisant le registre RMI
    Par engineer_23 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 16/10/2007, 15h51
  4. Comment developper du RMI avec eclipse
    Par baroudi dans le forum Eclipse Java
    Réponses: 3
    Dernier message: 14/04/2006, 10h13
  5. [RMI]comment creer les stubs sous eclipse(lancement de rmic)
    Par juflata dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 22/06/2004, 13h51

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