0% ont trouvé ce document utile (0 vote)
9 vues4 pages

Java RMI

Le document décrit les étapes de développement d'une application Java RMI utilisant une base de données ORACLE pour insérer des services. Il détaille la création d'une interface distante, le développement d'une application serveur qui implémente cette interface, et la création d'une application cliente pour appeler les méthodes du serveur. Enfin, il fournit des instructions pour tester l'application RMI, y compris la configuration des chemins de classe et des permissions de sécurité.

Transféré par

MOHAMMED OUANAN
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
9 vues4 pages

Java RMI

Le document décrit les étapes de développement d'une application Java RMI utilisant une base de données ORACLE pour insérer des services. Il détaille la création d'une interface distante, le développement d'une application serveur qui implémente cette interface, et la création d'une application cliente pour appeler les méthodes du serveur. Enfin, il fournit des instructions pour tester l'application RMI, y compris la configuration des chemins de classe et des permissions de sécurité.

Transféré par

MOHAMMED OUANAN
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

Java RMI, étapes de développement d’une application

Pour décrire les étapes de développement d’une application Java RMI, nous utiliserons une base de données
ORACLE avec une table SERVICE qui représente les service au sein d’une société ( Service Comptable, Service
Informatique …).
L’objectif de cet exemple est de pouvoir insérer des services dans la table SERVICE à partir d’une application
Java RMI :

Couche d’accès aux données Couche Client


Serveur Java RMI Client Java RMI
ORACLE 10 g RPC
RMI
JDBC
SERVICE

Le développement d’une application Java RMI passe par les étapes suivantes :
1. Définir une Interface distante
Il s’agit dans cette étape de définir une interface distante qui sera implémentée par la suite au niveau du
serveur RMI. Dans notre exemple l’interface contient une seule méthode ServiceInsert qui prend en
entrée un Code service et son libelle et les insère dans la table Service :
package gestionemployes;
import [Link].*;
public interface DataAccessInterface extends Remote {
public void ServiceInsert(String code, String libelle) throws RemoteException;
}

2. : Créer une application Serveur


a. Développer une classe qui implémente l’interface distante
Dans cette étape nous développerons la couche d’accès aux données ( Dans notre exemple les
données sont représentés par la table SERVICE ). Cette couche sera une Classe java ( Serveur
RMI ), avec les méthodes suivantes :
i. Constructeur de la classe : Le rôle du constructeur est d’initialiser et d’ouvrir une
connexion avec la base de données
ii. Méthode implémentant l’interface distante : Cette méthode implémente l’interface
distante et insère les données dans la base de données.
iii. Méthode principale ( main ) : C’est la méthode main principale nécessaire pour lancer
notre serveur RMI en tant qu’application

package gestionemployes;
import [Link];
import [Link];
import [Link];
import [Link];
import [Link].*;
import [Link].*;
import [Link].*;
import [Link].*;
import [Link].*;
import [Link].*;
import [Link].*;
import [Link];
public class DataAccess extends UnicastRemoteObject
implements DataAccessInterface {
Connection conn = null;
public DataAccess() throws RemoteException {
try
{

[Link] Page 1 sur 4


[Link] (new [Link]());
conn = [Link]
("jdbc:oracle:thin:@localhost:1521:cnam", "NFP111", "nfp111");
}
catch(SQLException sqle){
[Link]([Link]());
}
finally{
}
}
public void ServiceInsert(String code, String libelle) throws RemoteException {
try
{
Statement statement = [Link]();
String query = "INSERT INTO SERVICE (CODE,LIBELLE ) VALUES ("+"'"+code+"'"+","+"'"+libelle+"'"+')';
[Link](query);
[Link]();
[Link]("Service "+code+" inséré");
}
catch(SQLException sqle){
[Link]([Link]());
}
finally{
}
}
/* Methode principale du service */
public static void main(String args[])
{
//set the security manager
try
{
[Link](new RMISecurityManager());
//create a local instance of the object
DataAccess Server = new DataAccess();
//put the local instance in the registry
[Link]("//localhost/DataAccess" , Server);
[Link]("Server waiting.....");
}
catch ([Link] me)
{
[Link]("Malformed URL: " + [Link]());
}
catch (RemoteException re)
{
[Link]("Remote exception: " + [Link]());
}
}
}

3. Créer une application cliente qui appelle les méthodes du serveur à distance
Cette couche est une classe java ( RMI Client ) qui insère le service Test dans la base de données en
passant par le serveur Java RMI :
package gestionemployes;
import [Link].*;
import [Link].*;
import [Link];
public class BusnessLayer {
public BusnessLayer() {
}
public static void main(String[] args)
{
String code = args[0];
String libelle = args [1];
//set the security manager for the client
[Link](new RMISecurityManager());
//get the remote object from the registry
try
{
[Link]("Security Manager loaded");

[Link] Page 2 sur 4


String url = "//localhost/DataAccess";
DataAccessInterface remoteDataAccess = (DataAccessInterface)[Link](url);
[Link]("Atteindre l'objet Remote");
[Link](code,libelle);
[Link]("Insertion faite");
[Link]("Le code remote est : "+code);
}
catch (RemoteException exc)
{
[Link]("Error in lookup: " + [Link]());
}
catch ([Link] exc)
{
[Link]("Malformed URL: " + [Link]());
}
catch ([Link] exc)
{
[Link]("NotBound: " + [Link]());
}
catch (Exception exc)
{
[Link]("NotBound: " + [Link]());
}
}
}

Pour tester l’application Java RMI, il faut

1. Ajouter le répertorie des classes Serveur dans la variable d’environnement CLASS_PATH de la


machine Serveur

2. Modifier la stratégie de sécurité du Client


Pour que le client puisse se connecter au serveur RMI , il faut modifier son fichier de stratégie :
<Répertoire Jdeveloper>\jdk\jre\lib\security et ajouter :
grant {
permission [Link] "*:1024-65535", "connect,accept";
permission [Link] "*:80", "connect";
};

3. Créer les Stubs avec l’outil rmic


Pour cela il faut lancer à partir d’une ligne de commande, la commande rmic avec comme argument le
nom de la classe Serveur :

c:\> rmic [Link]

4. Démarrer le registre avec l’outil rmiregistry


A partir d’une ligne de commande, lancer l’outils rmiregistry :

c:\> rmiregistry

5. Lancer le serveur pour créer les objets :


Exécuter l’application Serveur
6. Tester le client :
Lancer l’application Client, et insérer des services dans la table SERVICE.

[Link] Page 3 sur 4


Si on intérroge la base de données pour voir si les données sont insérées :

[Link] Page 4 sur 4

Vous aimerez peut-être aussi