Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2810 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  problème de liaison d'un objet distant

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

problème de liaison d'un objet distant

n°2064807
msedirim
Posté le 19-03-2011 à 17:54:27  profilanswer
 

Bonjour,
 
Lorsque j'exécute le projet rmi alors j'ai le message suivant:

Citation :


init:
EJB.init:
EJB.deps-jar:
EJB.compile:
EJB.library-inclusion-in-archive:
Building jar: C:\Documents and Settings\etudiant\Mes documents\NetBeansProjects\EJB\dist\EJB.jar
EJB.dist:
deps-jar:
compile-single:
Serveur : Construction de l’implémentation
Erreur de liaison de l'objet
java.rmi.server.ExportException: remote object implements illegal remote interface; nested exception is:
java.lang.IllegalArgumentException: illegal remote method encountered: public abstract boolean inscriptionclient.IServiceInscription.inscrit(java.lang.String,java.lang.String,int,java.lang.String,java.lang.String,java.lang.String)
debug-single:
BUILD SUCCESSFUL (total time: 9 seconds)


 
J'ai essayé de générer les stubs en tapant la commande dos suivante:

Citation :

C:\Documents and Settings\etudiant\Mes documents\NetBeansProjects\InscriptionClient\build\jar>rmic inscriptionclient.ServiceInscription


 
alors j'ai le message suivant:
 

Citation :

error: Invalid class file format in .\inscriptionclient\ServiceInscription.class. The major.minor version '50.0' is too recent for this tool to understand.
error: Class inscriptionclient.ServiceInscription not found.
2 errors


 
Pour le projet RMI :
- voici le code de main:
 

Code :
  1. package inscriptionclient;
  2. import java.rmi.Naming;
  3. public class Main {
  4.     public static void main(String[] args) {
  5.         // TODO code application logic here
  6.         try {
  7.             java.rmi.registry.LocateRegistry.createRegistry(1099);
  8.             System.out.println("Serveur : Construction de l’implémentation" );
  9.             ServiceInscription nam = new ServiceInscription();
  10.             System.out.println("Service lié dans RMIregistry" );
  11.             Naming.rebind("rmi://localhost:1099/Inscrit", nam);
  12.         } catch (Exception e) {
  13.             System.out.println("Erreur de liaison de l'objet" );
  14.             System.out.println(e.toString());
  15.         }
  16.     }
  17. }


 
- voici le code de ServiceInscription.java:
 

Code :
  1. package inscriptionclient;
  2. import java.rmi.*;
  3. import java.rmi.server.*;
  4. import java.util.Properties;
  5. import javax.naming.InitialContext;
  6. import javax.naming.NamingException;
  7. import javax.rmi.PortableRemoteObject;
  8. import tp3.ejb3.beans.inscriptonRemote;
  9. public class ServiceInscription extends UnicastRemoteObject implements IServiceInscription {
  10.     public ServiceInscription() throws RemoteException {
  11.         super();
  12.     }
  13.     @Override
  14.     public boolean inscrit(String nom, String prenom, int age, String email, String login, String password) {
  15.         InitialContext ctx;
  16.         boolean resutlat = false;
  17.         try {
  18.             Properties props = new Properties();
  19.             props.setProperty("java.naming.factory.initial", "com.sun.enterprise.naming.SerialInitContextFactory" );
  20.             props.setProperty("java.naming.factory.url.pkgs", "com.sun.enterprise.naming" );
  21.             props.setProperty("java.naming.factory.state", "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl" );
  22.             props.setProperty("org.omg.CORBA.ORBInitialHost", "localhost" );
  23.             props.setProperty("org.omg.CORBA.ORBInitialPort", "3700" );
  24.             ctx = new InitialContext(props);
  25.             Object ref = ctx.lookup("tp3.ejb3.beans.inscription" );
  26.             inscriptonRemote ejb = (inscriptonRemote) PortableRemoteObject.narrow(ref, inscriptonRemote.class);
  27.             resutlat = ejb.inscrit(nom, prenom, age, email, login, password);
  28.         } catch (NamingException ex) {
  29.             ex.printStackTrace();
  30.         } finally {
  31.             return resutlat;
  32.         }
  33.     }
  34. }


 
- voici le code de IServiceInscription.java:
 

Code :
  1. Package inscriptionclient;
  2. import java.rmi.Remote;
  3. public interface IServiceInscription extends Remote {
  4.     public boolean inscrit(String nom, String prenom, int age, String email, String login, String password);
  5. }

Quel est le problème ?
 
 
Merci en avance pour vos aides.

mood
Publicité
Posté le 19-03-2011 à 17:54:27  profilanswer
 

n°2064879
leonhard
Posté le 20-03-2011 à 14:45:21  profilanswer
 

msedirim a écrit :


Citation :

error: Invalid class file format in .\inscriptionclient\ServiceInscription.class. The major.minor version '50.0' is too recent for this tool to understand.
error: Class inscriptionclient.ServiceInscription not found.
2 errors


Quel est le problème ?
 
 
Merci en avance pour vos aides.


 
Il me semble que ce genre de message d'erreur apparaît quand la machine virtuelle utilisée pour lancer une classe est plus ancienne que le compilateur qui l'a générée (par exemple tu as compilé sous Java 6 et lancé l'applic sous Java 5). Ici peut-être que le compilateur rmic n'est pas le "bon".

n°2065056
msedirim
Posté le 21-03-2011 à 13:14:31  profilanswer
 

Bonjour,
 
Je travaille avec NetBeans IDE 6.9.1 avec jdk1.6.0_20 et jre6
Quel est le bon compilateur ?

n°2065090
leonhard
Posté le 21-03-2011 à 14:25:50  profilanswer
 

msedirim a écrit :

Bonjour,
 
Je travaille avec NetBeans IDE 6.9.1 avec jdk1.6.0_20 et jre6
Quel est le bon compilateur ?


 
 
Je ne voulais pas dire qu'il y a un bon et un  mauvais compilateur, mais juste que tu dois t'assurer que la machine virtuelle, le compilateur rmic et le compilateur javac soient de la même version (surement que la condition est trop restrictive, mais au moins là on garanti que ça marche). T'as essayé de faire les choses "à la main" càd sans utiliser netbeans, mais juste un shell (fenêtre DOS si tu es sous windows) ?

n°2065098
msedirim
Posté le 21-03-2011 à 14:48:25  profilanswer
 

Citation :

T'as essayé de faire les choses "à la main" càd sans utiliser netbeans, mais juste un shell (fenêtre DOS si tu es sous windows) ?


 
OK mais quelles commandes à exécuter ?

Message cité 1 fois
Message édité par msedirim le 21-03-2011 à 14:48:36
n°2065118
leonhard
Posté le 21-03-2011 à 16:55:09  profilanswer
 

msedirim a écrit :

Citation :

T'as essayé de faire les choses "à la main" càd sans utiliser netbeans, mais juste un shell (fenêtre DOS si tu es sous windows) ?


 
OK mais quelles commandes à exécuter ?


 
http://download.oracle.com/javase/ [...] index.html
 
Je ne connais pas netbeans, mais peut-être qu'il a son propre compilateur de stub (rmic) et que le problème vient de là. C'est la raison pour laquelle tu dois essayer de voir ce qui se passe si tu appliques les différents pas dans un shell. Mais pour commencer tu peux chercher combien de programmes appellés "rmic" tu as sur ton boulier.


Message édité par leonhard le 21-03-2011 à 17:24:19

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  problème de liaison d'un objet distant

 

Sujets relatifs
Où ce peut etre le problème ?Problème Regex
probleme xampp erreur 404Filereference.download marche en local mais pas en distant
[perl] Probleme double lecture[resolu] problème d'injection SQL, doctrine orm
Probleme sur href et mailto[Résolu] Problème clause is ambiguous
Plus de sujets relatifs à : problème de liaison d'un objet distant


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR