tnameserv(1) Java IDLRMI-IIOP tnameserv(1) tnameserv - (IDL) tnameserve -ORBInitialPort [ nameserverport ] -ORBInitialPort nameserverport ORBresolve_initial_referenceslist_initial_references Java IDLObject Request Broker Daemon (ORBD)ORBDJava IDLORBDorbdtnameserv orbd(1)http://docs.oracle.com/javase/8/docs/technotes/guides/idl/jidlNaming.html Naming Service CORBACOS (Common Object Services)Java IDLtnameservCOS Java IDL COSORBJava IDLCOS Java IDLJava IDLJava IDL(Oracle Solaris: tnameserv)(Windows: tnameserv.exe) Java IDLORBresolve_initial_referenceslist_initial_references methods900 tnameserv -ORBInitialPort nameserverport& 900Oracle Solaris1024root10241050SolarisLinuxOS X tnameserv -ORBInitialPort 1050& WindowsMS-DOS start tnameserv -ORBInitialPort 1050 ORBorg.omg.CORBA.ORBInitialPort Java IDLRMI-IIOP org.omg.CORBA.ORBInitialPortorg.omg.CORBA.ORBInitialHostGetting Started Using RMI-IIOP (http://docs.oracle.com/javase/8/docs/technotes/guides/rmi-iiop/rmiiiopexample.html) -ORBInitialPort nameserverport#-ORBInitialHost nameserverhostname1http://docs.oracle.com/javase/8/docs/technotes/guides/idl/tutorial/jidl2machines.htmlJava IDL: The Hello World Example on Two Machines tnameservnameserverhost1050clienthostserverhost nameserverhosttnameserv tnameserv -ORBInitialPort 1050 serverhost java Server -ORBInitialPort 1050 -ORBInitialHost nameserverhost clienthost java Client -ORBInitialPort 1050 -ORBInitialHost nameserverhost Java IDLSolarisLinuxOS XkillWindows[Ctrl]+[C]Java IDL -Joption Java Virtual MachineoptionoptionJava1-J-Xms48m48MBjava(1) Initial Naming Context plans Personal calendar schedule plansPersonalcalendarschedule2 import java.util.Properties; import org.omg.CORBA.*; import org.omg.CosNaming.*; public class NameClient { public static void main(String args[]) { try { nameserver1050 Properties props = new Properties(); props.put("org.omg.CORBA.ORBInitialPort", "1050"); ORB orb = ORB.init(args, props); ctx2ctxobjrefobjref NamingContext ctx = NamingContextHelper.narrow( orb.resolve_initial_references("NameService")); NamingContext objref = ctx; textplansrebindplansrebindbind NameComponent nc1 = new NameComponent("plans", "text"); NameComponent[] name1 = {nc1}; ctx.rebind(name1, objref); System.out.println("plans rebind successful!"); directoryPersonalctx2name NameComponent nc2 = new NameComponent("Personal", "directory"); NameComponent[] name2 = {nc2}; NamingContext ctx2 = ctx.bind_new_context(name2); System.out.println("new naming context added.."); schedulecalendarPersonal(ctx2) NameComponent nc3 = new NameComponent("schedule", "text"); NameComponent[] name3 = {nc3}; ctx2.rebind(name3, objref); System.out.println("schedule rebind successful!"); NameComponent nc4 = new NameComponent("calender", "text"); NameComponent[] name4 = {nc4}; ctx2.rebind(name4, objref); System.out.println("calender rebind successful!"); } catch (Exception e) { e.printStackTrace(System.err); } } } import java.util.Properties; import org.omg.CORBA.*; import org.omg.CosNaming.*; public class NameClientList { public static void main(String args[]) { try { nameserver1050 Properties props = new Properties(); props.put("org.omg.CORBA.ORBInitialPort", "1050"); ORB orb = ORB.init(args, props); NamingContext nc = NamingContextHelper.narrow( orb.resolve_initial_references("NameService")); list1000BindingListHolderBindingIteratorHolder BindingListHolder bl = new BindingListHolder(); BindingIteratorHolder blIt= new BindingIteratorHolder(); nc.list(1000, bl, blIt); BindingListHolder Binding bindings[] = bl.value; if (bindings.length == 0) return; for (int i=0; i < bindings.length; i++) { // get the object reference for each binding org.omg.CORBA.Object obj = nc.resolve(bindings[i].binding_name); String objStr = orb.object_to_string(obj); int lastIx = bindings[i].binding_name.length-1; // check to see if this is a naming context if (bindings[i].binding_type == BindingType.ncontext) { System.out.println("Context: " + bindings[i].binding_name[lastIx].id); } else { System.out.println("Object: " + bindings[i].binding_name[lastIx].id); } } } catch (Exception e) { e.printStackTrace(System.err) } } } o orbd(1) JDK 8 20131121 tnameserv(1)