JACORB

Fonctionnement de base:

sous windows

Modifier sous Jacob/bin, les fichiers :

sous linux

1) IL FAUT copier le répertoire HELLO fourni sous le répertoire demo de Jacorb 2) pour compiler : appeler: ant sous votre répertoire demo/HELLO 3) pour exécuter, installer ces 2 scripts qui permettent une exécution interactive sous votre répertoire demo/HELLO

 runServer.sh contenant ( utiliser le bon chemin de JacORB-2.2.3) :

 export CLASSPATH="$CLASSPATH:/home/CORBA/JacORB-2.2.3/lib/jacorb.jar:/home/CORBA/JacORB-2.2.3/classes"
 java hellop.Server hello.ref

 runClient.sh contenant ( utiliser le bon chemin de JacORB-2.2.3) :

 export CLASSPATH="$CLASSPATH:/home/CORBA/JacORB-2.2.3/lib/jacorb.jar:/home/CORBA/JacORB-2.2.3/classes"
 java hellop.Client hello.ref

Application Hello : Version avec Factory et Name Service

Scripts version Hello-Factory-serveur de noms

Remarque:

Différence JACORB et ORBACUS

  1. Factory est un mot clef et ne passe pas pour la version JACORB. Le type Hello_impl n'est plus automatiquement compatible avec le type Hello.

Utilisez la méthode _this(orb) pour le convertir : ça donne : Hello createHello() {Hello_impl p =new Hello_impl(); return p._this(orb);}

  1. Le module IDL ne peut pas avoir le même nom que les interfaces qu'il contient :

Interopérabilité JACORB et ORBACUS

  1. L'IDL doit etre identique : il faut utiliser un module pour encapsuler les déclarations des interfaces IDL

Utilisation d'un serveur de noms

  1. Le parametre du bind : nc.bind(LeNom, poa.servant_to_reference(f));
  2. import org.omg.CosNaming.*;
  3. Etape 1 : enregistrer les objets sous la racine NameComponent[] LeNom = new NameComponent[1]; NameComponent[0]=new NameComponent("Hello","V4");
  4. ROBUSTESSE : n demarrages du serveur applicatof sans redemarrer le serveur de noms: try{nc.bind(...); }catch (org.ombg.CosNaming.NamingContextPackage.AlreadyBound a) {nc.rebind(....)}
  5. Etape 2 : enregistrer les objets sous un répertoire que le serveur crée: NameComponent[] LeNom = new NameComponent[2]; = new NameComponent("Hello","V4"); NameComponent[0]=new NameComponent("Binome1","Hello"); NameComponent[1]=new NameComponent("Hello","V4");