Engineering School, 2nd year
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

87 lines
2.3 KiB

/*
* #(@)BankServer.java ENSICAEN 2005
*
* ENSICAEN
* 6 Boulevard Marechal Juin
* F-14050 Caen Cedex
*
* Ce fichier est l'oeuvre d'eleves de l'ENSI de Caen. Il ne peut etre
* reproduit, utilise ou modifie sans l'avis express de ses auteurs.
*/
package Bank;
import BankManagement.*;
import org.omg.CosNaming.*;
import org.omg.CosNaming.NamingContextPackage.*;
import org.omg.CORBA.*;
import org.omg.PortableServer.*;
import org.omg.PortableServer.POA;
import java.util.Properties;
/**
* Make a bank servant availlable on the corba bus
*/
public class BankServer {
/**
* Lauch the bank server.
*/
public static void main(String args[]) {
String host = "localhost";
String port = "1050";
if (args.length >= 1) {
port = args[0];
}
if (args.length >= 2) {
host = args[1];
}
try{
// Step 1: Instantiate the ORB
ORB orb = ORB.init(new String[] {"-ORBInitialPort", host, "-ORBInitialPort", port }, null);
// Step 2: Instantiate the servant
BankImpl bankServ = new BankImpl();
// get reference to rootpoa & activate the POAManager
POA rootpoa = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootpoa.the_POAManager().activate();
rootpoa.activate_object(bankServ);
// Resolve RootNaming context and bind a name for the
// servant.
// NOTE: If the Server is persistent in nature then using Persistent
// Name Service is a good choice. Even if ORBD is restarted the Name
// Bindings will be intact. To use Persistent Name Service use
// 'NameService' as the key for resolve_initial_references() when
// ORBD is running.
org.omg.CORBA.Object obj = orb.resolve_initial_references("NameService" );
NamingContextExt rootContext = NamingContextExtHelper.narrow(obj);
NameComponent[] nc = rootContext.to_name("Bank");
rootContext.rebind(nc, rootpoa.servant_to_reference(bankServ));
System.out.println("Bank server ready and waiting ...");
// wait for invocations from clients
orb.run();
}
catch (Exception e) {
System.err.println("ERROR: " + e);
e.printStackTrace(System.out);
}
System.out.println("Bank Server Exiting ...");
}
}