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

Entrée/Sortie Java Discussion :

passer un objet en parametre d'une methode RMI


Sujet :

Entrée/Sortie Java

  1. #1
    Membre régulier Avatar de Dryss51
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 91
    Points
    91
    Par défaut passer un objet en parametre d'une methode client RMI
    Bonjour,

    Je voudrai passer un objet en parametre d'un methode, mais apres plusieurs essais différents j'ai toujours des erreurs à l'execution mais pas à la compilation. La derniere est
    java.lang.ClassCastException: $Proxy0 cannot be cast to ServeurCalcul
    Voila le code qui recupere l'objet distant et qui essai d'effectué une methode sur cette objet(la méthode en question a pour but d'inserer l'objet Serveur calcul dans un tableau de serveurCalcul de la classe distante)

    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
    39
    40
    41
     
    //ServerCalcul.java
    import java.rmi.server.*;
    import java.rmi.*;
    import java.math.*;
    import java.io.Serializable;
     
     
    public class ServeurCalcul extends UnicastRemoteObject implements PiInterfacePart
    {
     
    	public int nbServ;
     
    	public ServeurCalcul()throws RemoteException{ super();}
     
    	public BigDecimal calculPart(int nbDecimal, int index) throws RemoteException {...}
     
    public static void main (String args[]){
     
    		try
    		{
    		System.out.println("Récuperation de l'objet");
    		System.out.println("je crée le serveur à inserer");
    		PiInterfacePart SC = new ServeurCalcul();
     
    		PiInterface p = (PiInterface)Naming.lookup("rmi://localhost:1099/PiImpl");
    		System.out.println("Insertion de ce serveur dans l'impl");
    		p.insertServ(SC);//<-------CA PLANTE SUR CETTE METHODE
    System.out.println("Serveur de calcul pret");
    		}
    		catch(Exception e)
    		{
    			System.out.println("Erreur de liaison de l'objet dans le PiImplpart coté Calcul");
    			System.out.println(e.toString());
    		}
     
     
    	}
     
     
    }
    voila le code ou se trouve la methode elle doit récupérer l'objet ServeurCalcul et l'inserer grace à la methode insertServ().
    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
     
    //PiImpl.java
    import java.rmi.*;
    import java.rmi.server.*;
    import java.math.*;
     
     
    public class PiImpl extends UnicastRemoteObject implements PiInterface
     
    {
    	public BigDecimal S;
    	public ServeurCalcul [] tab = new ServeurCalcul[100];
     
     
    	public PiImpl()throws RemoteException{
    		super();
    	}
     
    	public void insertServ(PiInterfacePart SC)throws RemoteException{
                    if (tab.length==0)
                    {
                    ServeurCalcul Sv = (ServeurCalcul)SC;
                    tab[0]=Sv
                    }
                    else
                    {
    		int indexInsert = tab.length + 1;
    		ServeurCalcul Sv = (ServeurCalcul)SC;
    		tab[indexInsert] = Sv;
                    }
    	}
     ...
    Voila je suis preneur pour n'importe quelle idée qui fera avancer le chmilibilibilique...
    Merci d'avance.

  2. #2
    Membre régulier Avatar de Dryss51
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 113
    Points : 91
    Points
    91
    Par défaut Résolution
    Après de longue heures de galère seul sans aide... J'ai enfin reussi.
    Alors j'envoie ce petit post pour ceux qui galèrerons sur du RMI java.
    Pour passer en paramètre un objet (client) qui pourra être réutilisé sur le serveur, il faut implémenter serialisable, et l'interface créer. Puis utiliser UnicastRemoteObject.exportObject(this) (pour exporter l'objet courant évidament...).
    Il faut ensuite créer le stub de se fichier(rmic...).
    Voila, cherchez des infos sur les callbacks distants si vous galérez toujours...

    Bonne continuation

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 16/03/2007, 19h28
  2. Passer un contrôle en paramètre d'une fonction
    Par Kinian dans le forum Access
    Réponses: 6
    Dernier message: 15/05/2006, 11h15
  3. Réponses: 4
    Dernier message: 20/04/2006, 11h07
  4. Passer un tableau en parametre dans une fonction js
    Par hellmaster78 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 19/06/2005, 14h35
  5. valeur par defaut d'un parametre d'une methode
    Par le y@m's dans le forum C++
    Réponses: 16
    Dernier message: 04/05/2005, 20h23

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