import HelloApp.*; import org.omg.CosNaming.*; import org.omg.CosNaming.NamingContextPackage.*; import org.omg.CORBA.*; import java.io.*; /** * a simple client invoking operation on a Hello CORBA object * *@author donsez *@version 16/06/2003 */ public class HelloClient { /** * The main() Method * *@param args command arguments */ public static void main(String args[]) { if (args.length < 2) { usage(); return; } try { // Set or load the ORB properties java.util.Properties props = null; // Properties props = new Properties(); // props.put("org.omg.CORBA.ORBInitialPort", "1050"); // props.put("org.omg.CORBA.ORBInitialHost", "MyHost"); // create and initialize the ORB ORB orb = ORB.init(args, props); org.omg.CORBA.Object objRef; if (args[0].equals("-name")) { String bindingname = args[1]; // get the root naming context org.omg.CORBA.Object ncobjRef = orb.resolve_initial_references("NameService"); // Use NamingContextExt instead of NamingContext. This is // part of the Interoperable naming Service. NamingContextExt ncRef = NamingContextExtHelper.narrow(ncobjRef); // resolve the Object Reference in Naming objRef = ncRef.resolve_str(bindingname); } else if (args[0].equals("-iorfile")) { String iorfilename = args[1]; FileInputStream fis = new FileInputStream(iorfilename); java.io.DataInputStream dis = new java.io.DataInputStream(fis); String ior = dis.readLine(); dis.close(); objRef = orb.string_to_object(ior); } else if (args[0].equals("-ior")) { String ior = args[1]; objRef = orb.string_to_object(ior); } else { usage(); return; } Hello hello = HelloHelper.narrow(objRef); System.out.println("Obtained a handle on server object: " + hello); System.out.println(hello.sayHello("World")); hello.shutdown(); } catch (Exception e) { System.out.println("ERROR : " + e); e.printStackTrace(System.out); } } /** * Print usage of this application */ static void usage() { System.err.println("Usage: HelloClient -name "); System.err.println("Usage: HelloClient -ior "); System.err.println("Usage: HelloClient -iorfile "); } }