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

avec Java Discussion :

Problème " Method not supported by remote object" methode d'une interface cliente


Sujet :

avec Java

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 141
    Points : 101
    Points
    101
    Par défaut Problème " Method not supported by remote object" methode d'une interface cliente
    Bonjour à tous .

    j'aimerai résoudre un probléme de cast sur une classe. Je travaille sur un projet RMI.

    partie Serveur :

    ( interface ) Connection.java
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     
    public interface ConnectionFactory extends Remote{
     
    	 public  Connection getConnection() throws SQLException, RemoteException ;
     
    	 public  ConnectionFactoryImpl getInstance() throws RemoteException;
     
    }
    Ma fonction getInstance retourne un objet ConnectionFactoryImpl

    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
     
    public ConnectionFactoryImpl getInstance() throws RemoteException {
     
        	   ConnectionFactoryImpl connectionFactory = null;
     
     
        	   try {
                           // GetInstanceV me permet de pouvoir me connecter à une base de donnée   ( methode static )
    			connectionFactory = getInstanceV();
    		} catch (Exception e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
        	   System.out.println("getInstance");
        	   return connectionFactory;
     
           }

    j'ai créer cette méthode car je ne pouvais pas faire autrement.

    Partie client :
    INterface

    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
     
    package service;
     
    import java.rmi.Remote;
    import java.rmi.RemoteException;
    import java.sql.Connection;
    import java.sql.SQLException;
     
    public interface ConnectionFactory extends Remote{
     
    	 public  Connection getConnection() throws SQLException, RemoteException ;
     
    	 public  Object getInstance() throws RemoteException;
     
     
    }

    Mon Main Client.java
    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
     
    public class Client {
    ...
    public Client(){
     
    try {
    				ConnectionFactory stub  = (ConnectionFactory) Naming.lookup("rmi://localhost:10999/BDD");
    				stub.getInstance();
     
    				entier = fichierMathML_DAO.add(objetEntrer);
     
    				 fichierMathML_DAO = stub.getFichierDAO();
    			} catch (Exception e) {
    				// TODO Auto-generated catch block
    				e.printStackTrace();
    			}
     
    }
    }
    Mon erreur concerne donc un problème de cast sur ma methode Interface Client :
    public Object getInstance() throws RemoteException;

    Je ne peux pas faire public ConnectionFactoryImpl getInstance() throws RemoteException; dans ma partie client.

    Est ce qu'il y aurai un autre moyen pour obtenir un objet de ma classe implémenté qui support RemoteObjet parce que je bute depuis un moment dessus et je bloque.


    merci d'avance.

  2. #2
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    pourquoi ta méthode change de signature entre le client et le serveur? Elle doit avoir la même signature. Parce que quand ton client interrogera le serveur, le serveur lui dira "Ha, une méthode avec la signature <Objet>getInstance(), j'ai pas"

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 141
    Points : 101
    Points
    101
    Par défaut
    Bonjour,
    oui c'est mon problème , je ne sais pas quoi mettre , vu que mon metier ( getInstance() sort un objet de mon implementation )
    du coup je peux pas mettre en client un objet mon implementation.

    du coup je ne sais vraiment pas quoi faire.

  4. #4
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Ben ton ConnectionFactoryImpl il doit implémenter des méthodes d'une interface, et tu dois déclarer dans ta méthode non pas que ca sort un ConnectionFactoryImpl, mais que ça sort un ConnectionFactoryInterface, par exemple.

  5. #5
    Modérateur
    Avatar de Alkhan
    Homme Profil pro
    ingénieur full stack
    Inscrit en
    Octobre 2006
    Messages
    1 232
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : ingénieur full stack

    Informations forums :
    Inscription : Octobre 2006
    Messages : 1 232
    Points : 2 061
    Points
    2 061
    Par défaut
    Bonjour,

    Visiblement tu a définis deux interfaces ConnectionFactory un coté serveur et une coté client, ce qui est étrange. Normalement tu définis ton interface coté serveur et coté client tu utilises cette interface.
    D'autre part, je t'arrête tout de suite ce que tu veux faire ne fonctionnera pas !
    J'imagine que getConnection retourne une java.sql.Connection, et bien une Connection n'est pas sérializable et par conséquent tu ne pourra pas la faire passer du serveur vers le client !
    Il n'y a pas de problème, il n'y a que des solutions.
    Cependant, comme le disaient les shadoks, s'il n'y a pas de solution, c'est qu'il n'y a pas de problème.
    Si toutefois le problème persiste, la seule solution restante est de changer le périphérique qui se trouve entre la chaise et l'écran

    Mes Articles : Mon premier article est sur le language D
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. Problème: nested transactions not supported
    Par Racha07 dans le forum Développement Web en Java
    Réponses: 2
    Dernier message: 28/05/2015, 11h25
  2. [Security] Authentication method not supported:Get
    Par poitou82 dans le forum Spring
    Réponses: 2
    Dernier message: 21/06/2011, 18h11
  3. Object does not support this property or method
    Par Runsh63 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 31/05/2011, 16h10
  4. Réponses: 7
    Dernier message: 22/02/2007, 11h29

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