package tpcorba.exo1; import org.omg.CORBA.*; import org.omg.PortableServer.*; import java.io.*; import java.lang.*; import java.util.*; public class Serveur { public static void main(String[] args) throws IOException { //////////////////////////////////////// // Initialisation de l'ORB et de la POA //////////////////////////////////////// try { //init ORB ORB orb = ORB.init(args, null); //init POA POA poa = POAHelper.narrow(orb.resolve_initial_references("RootPOA")); poa.the_POAManager().activate(); //////////////////////////////////////////////////////////////// // Instantiation de l'objet : creation de // l'implementation de l'objet //////////////////////////////////////////////////////////////// calculImpl calcImpl = new calculImpl(); //////////////////////////////////////////// // Activation de l'objet d'implementation //////////////////////////////////////////// org.omg.CORBA.Object calc = poa.servant_to_reference(calcImpl); //////////////////////////////////////////////////////// // Sauvegarde de la reference d'objet dans un fichier /////////////////////////////////////////////////////// try { String calc_ref = orb.object_to_string(calc); String refFile = "calcul.ref"; PrintWriter out = new PrintWriter(new FileOutputStream(refFile)); out.println(calc_ref); out.close(); } catch (IOException ex) { System.err.println( "Impossible d'ecrire la reference dans calcul.ref"); System.exit(1); } //////////////////////////////////////////////////////////////// // Lancement de la POA et de l'ORB : a partir de cet instant, le serveur // est capable de traiter les requetes sur les objets deja // actives ainsi que ceux qui le seront par la suite // La methode "orb.run" est bloquante //////////////////////////////////////////////////////////////// System.out.println("Le serveur est pret "); orb.run(); System.exit(0); } catch (Exception e) { System.out.println(e); } } }