![]() | Documentation Contents |
?????????????????????????????????Java IDL ??????????????????????????? tnameserv ?????????????????????????????????????????????Java IDL ?????????Object Request Broker Daemon (ORBD) ???????????????????????????ORBD ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java IDL ?????????????????????????????????????????? ORBD ????????????????????????????????????????????????????????????????????????????????????orbd ??????????????? tnameserv ????????????????????????orbd ????????????????????????????????????orbd ??? ?????????????????????????????????ORBD ??????????????? Java IDL ???????????????????????????????????????????????????????????????????????????
????????????????????????????????????????????????????????????
CORBA ??? COS (Common Object Services) ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java IDL ??????????????????????????????????????? tnameserv ??????COS ???????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? ??????????????????????????????????????????????????????Java IDL ????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????? COS ????????????????????????????????????????????????????????? ORB ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java IDL ?????????????????????????????????????????? COS ?????????????????????????????????????????????????????????
Java IDL ???????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java IDL ???????????????????????????????????????Java IDL ??????????????????????????????????????????????????? (Solaris: tnameserv) ?????????????????????????????? (Windows NT: tnameserv.exe) ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????Java IDL ???????????????????????????ORB ??? resolve_initial_references() ??????????????? list_initial_references() ???????????????????????????????????????????????????????????????????????????????????????????????? 900 ?????????????????????
tnameserv -ORBInitialPort nameserverport&
???????????????????????????????????????????????????????????????????????????????????? 900 ????????????????????????Solaris ????????????????????????????????????1024 ???????????????????????????????????????????????????????????????root ????????????????????????????????????????????? ???????????????1024 ????????? 1024 ????????????????????????????????????????????????????????????????????? 1050 ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????UNIX ?????????????????????????????????????????????????????????
tnameserv -ORBInitialPort 1050&
Windows ??? MS-DOS ?????????????????????????????????????????????????????????????????????
start tnameserv -ORBInitialPort 1050
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????ORB ????????????????????????????????? org.omg.CORBA.ORBInitialPort ??????????????????????????????????????????????????????????????????
Java IDL ??? RMI-IIOP ??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? org.omg.CORBA.ORBInitialPort ????????????????????? org.omg.CORBA.ORBInitialHost ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????RMI-IIOP ???????????? Hello World ?????????????????????????????????????????????????????????????????? -ORBInitialPort nameserverport# ??? -ORBInitialHost nameserverhostname ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java IDL: 2 ????????????????????????????????? Hello World ?????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????? tnameserv ??????????????? nameserverhost ???????????? 1050 ???????????????????????????????????????????????????????????????????????????????????? clienthost ????????????????????????????????????????????? serverhost ??????????????????????????????????????????
tnameserv -ORBInitialPort 1050
java Server -ORBInitialPort 1050 -ORBInitialHost nameserverhost
java Client -ORBInitialPort 1050 -ORBInitialHost nameserverhost
- -Joption
- Java ?????????????????? option ?????????????????? option ????????????Java ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1 ????????????????????????????????????-J-Xms48m ????????????????????????????????????????????????????????? 48M ?????????????????????????????????-J ???????????????????????????????????????????????????????????????????????????????????????????????????
Java IDL ?????????????????????????????????????????????Unix ???????????????kill ????????????????????????????????????????????????????????????????????????Windows ???????????????Ctrl-C ?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????Java IDL ????????????????????????????????????????????????????????????????????????
?????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
??????
?????????????????????????????????
/ \
/ \
plans Personal
/ \
/ \
calendar schedule
???????????????plans ??????????????????????????????Personal ??? calendar ??? schedule ??? 2 ?????????????????????????????????????????????????????????????????????????????????
import java.util.Properties;
import org.omg.CORBA.*;
import org.omg.CosNaming.*;
public class NameClient
{
public static void main(String args[])
{
try {
????????????Java IDL ?????????????????????????????????????????????????????????????????????????????? 1050 ???????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????
Properties props = new Properties();
props.put("org.omg.CORBA.ORBInitialPort", "1050");
ORB orb = ORB.init(args, props);
??????????????????????????????????????????????????????????????????????????????????????? ctx ?????????????????????2 ???????????????ctx ??????????????????????????????????????? objref ???????????????????????? ?????? objref ??????????????????????????????????????????????????????????????????????????????????????????
NamingContext ctx =
NamingContextHelper.narrow(orb.resolve_initial_references("NameService"));
NamingContext objref = ctx;
????????????????????????text ???????????? plans ???????????????????????????????????????????????????????????????????????????????????????????????????rebind ??????????????????????????????????????????????????????????????? "plans" ???????????????????????????rebind ?????????????????????????????????bind ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
NameComponent nc1 = new NameComponent("plans", "text");
NameComponent[] name1 = {nc1};
ctx.rebind(name1, objref);
System.out.println("plans rebind sucessful!");
????????????????????????directory ?????? Personal ??????????????????????????????????????????????????????????????????????????????????????????????????????????????? ctx2 ????????????????????????????????????????????????????????????????????????????????????????????????
NameComponent nc2 = new NameComponent("Personal", "directory");
NameComponent[] name2 = {nc2};
NamingContext ctx2 = ctx.bind_new_context(name2);
System.out.println("new naming context added..");
?????????????????????????????????????????????????????????????????? schedule ??? calendar ??????????????????????????????????????????????????? "Personal" (ctx2) ???????????????????????????
NameComponent nc3 = new NameComponent("schedule", "text");
NameComponent[] name3 = {nc3};
ctx2.rebind(name3, objref);
System.out.println("schedule rebind sucessful!");
NameComponent nc4 = new NameComponent("calender", "text");
NameComponent[] name4 = {nc4};
ctx2.rebind(name4, objref);
System.out.println("calender rebind sucessful!");
} 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 {
????????????Java IDL ?????????????????????????????????????????????????????????????????????????????? 1050 ???????????????????????????????????? ???????????????????????????????????????????????????????????????????????????????????????????????????
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"));
list ????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????? 1000 ????????????????????????????????????????????????????????????????????????????????? BindingListHolder ????????????????????? ????????????????????????????????????BindingIteratorHolder ?????????????????????
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);
}
}
}
Copyright © 1995-2010 Sun Microsystems, Inc. All Rights Reserved. Please send comments using this Feedback page. |
Java Technology |