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

Services Web Java Discussion :

Problème création service RMI


Sujet :

Services Web Java

  1. #1
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut Problème création service RMI
    Bonjour !

    Je développe une application qui nécessite un transfert par RMI. J'ai bien suivi tous les tutos, mais mon application serveur refuse de se lancer. Pourtant les fichiers .java compilent, et j'arrive aussi à créer la classe Stub. Mais en essayant de lancer l'appli, je me retrouve avec un access denied (en localhost). Je suis connecté à Internet, localhost devrait marcher pourtant. Quelqu'un aurait-il une explication?

    Merci d'avance.

  2. #2
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Tu peux donner un peu plus de précisions sur ton erreur ? Tu as regardé du coté des policies ?

  3. #3
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut
    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 rmi.GestionLogs.main(GestionLogs.java:57)

    Voilà exactement l'intitulé de l'erreur. Je programme sous Windows, c'est peut-être pour ça, mais je ne pense pas, sinon le Stub ne voudrait pas se compiler. Pour réussir à faire tout ça, j'ai :
    - mis mes codes sources dans le répertoire bin de la jdk (pour accéder à la commande rmic et rmiregistry)
    - compilé le tout en ligne de commande (sans erreur)
    - compilé le Stub (sans erreur)
    - lancé rmiregistry
    - lancé mon appli serveur (d'où le code d'erreur).

    Voici l'arborescence de mon appli (racine dans bin) :
    + rmi
    - GestionLogs.java
    - GestionLogs.class
    - IGestionLogs.java
    - IGestionLogs.class
    - GestionLogs_Stubs.class

    GestionLogs implémente IGestionLogs. Il n'y a pourtant pas d'erreur dans mon code, si quelqu'un sait d'où ça vient merci d'avance.

  4. #4
    Membre chevronné
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    1 348
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 348
    Points : 1 787
    Points
    1 787
    Par défaut
    Il faut que tu regardes comment gérer les policies en java et que tu lui spécifies un fichier policies quand tu lances l'appli ...

  5. #5
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut
    J'ai regardé. Les policies servent à l'application suivant. Mais j'ai trouvé ce qui n'allait pas. RMI se sert du classpath pour l'application serveur. Je ne m'en servait pas en ligne de commande. J'ai essayé avec Eclipse et ça marche. N'y a-t-il pas moyen de spécifier les policies autrement qu'à partir d'Eclipse ? (ce serait sympa pour une application web par exemple). Merci de tes efforts.

  6. #6
    Membre averti Avatar de Rayndell
    Étudiant
    Inscrit en
    Mai 2007
    Messages
    289
    Détails du profil
    Informations personnelles :
    Âge : 37

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2007
    Messages : 289
    Points : 323
    Points
    323
    Par défaut
    Bien alors j'ai réussi à régler le problème tout seul. Il faut spécifier une RMISecurityManager pour que le client puisse télécharger les classes nécessaires à l'exécution. Pour que cela marche, il faut également spécifier un fichier de policy qui règle les droits d'accès (par System.setProperty("java.security.policy", "adresse_du_fichier")). Il faut le spécifier AVANT de créer le RMISecurityManager sinon access denied. Enfin, pour pouvoir télécharger les classes, il faut créer une archive .jar contenant ces classes (avec la bonne structure de packages) et les placer sur une URL accessible à tous, dont on spécifie l'adresse dans la propriété java.rmi.server.codebase du serveur, en plus de spécifier le classpath du projet. Ouf... Ca m'a fatigué rien que d'en parler.

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

Discussions similaires

  1. Problème création client de web service
    Par eldran64 dans le forum Eclipse Java
    Réponses: 0
    Dernier message: 08/07/2010, 11h42
  2. [RMI] problème Création *_stub.class et *_skel.class
    Par philobedo dans le forum API standards et tierces
    Réponses: 6
    Dernier message: 29/05/2006, 21h03
  3. Problèmes création de procédures et de triggers
    Par missllyss dans le forum SQL
    Réponses: 2
    Dernier message: 06/11/2003, 11h42
  4. Problème création de DLL
    Par monsieur.voie.lactee dans le forum C++Builder
    Réponses: 4
    Dernier message: 12/08/2003, 17h56
  5. [Kylix] problème web service kylix
    Par RezzA dans le forum EDI
    Réponses: 3
    Dernier message: 11/02/2003, 15h50

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