在使用Corba 连接服务器时,有时能成功,有时不成功,在第四步,获取命名服务根对象引用时报错
使用的SpringBoot 程序,的定时器执行的
账号密码都对,也能ping通,求解答
private Integer initData(String userName, String passWord) {
System.out.println("已经执行");
try {
String[] argv = {"-ORBInitRef", "NameService=corbaloc::" + NSIP + ":" + NSPort + "/NameService"};
//The step 1: initialize ORB // 初始化成功
//ORB object
ORB orb = ORB.init(argv, null);
System.out.println("The step 1: initialize ORB successfully!");
//The step 2: get RootPOA // 成功获取 RootPOA!
POA rootPOA = POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
rootPOA.the_POAManager().activate();
System.out.println("The step 2: get RootPOA successfully!");
//the step 3: construct dynamic any factory
//步骤3:构建动态任意工厂
DynAnyFactory dynAnyFactory = DynAnyFactoryHelper.narrow(orb.resolve_initial_references("DynAnyFactory"));
System.out.println("the step 3: construct dynamic any factory." + (dynAnyFactory != null ? "successfully!" : "failed!"));
//The step 4: get naming service root object reference
//步骤4:获取命名服务根对象引用
Object service = orb.resolve_initial_references("NameService");
NamingContextExt nc = org.omg.CosNaming.NamingContextExtHelper.narrow(service);
System.out.println("The step 4: get naming service root object refrence successfully!");
//The step 5: get EmsSessionFactory_I object reference from naming service
//步骤5:从命名服务获取EmsSessionFactory_I对象引用
//construct EmsSessionFactory_I NameComponent,please get it's parameters from HuaWei
//构造EmsSessionFactory_I NameComponent,请从HuaWei获取其参数
NameComponent[] name = new NameComponent[5];
name[0] = new NameComponent("TMF_MTNM", "Class");
name[1] = new NameComponent("HUAWEI", "Vendor");
name[2] = new NameComponent("Huawei/NCE", "EmsInstance");
name[3] = new NameComponent("2.0", "Version");
name[4] = new NameComponent("Huawei/NCE", "EmsSessionFactory_I");
EmsSessionFactory_I EmsSessionFactory;
try {
EmsSessionFactory = EmsSessionFactory_IHelper.narrow(nc.resolve(name));
System.out.println("步骤5:从命名服务成功获取EmsSessionFactory_I对象引用!");
} catch (Exception ex) {
System.out.println("第5步:从命名服务获取EmsSessionFactory_I对象引用失败!\n请确认NCE CORBA正在运行并核对EMS名称!");
ex.printStackTrace();
return 0;
}
报错信息
.beans.factory.BeanCreationException: Error creating bean with name 'initializeConnection': Invocation of init method failed; nested exception is org.omg.CORBA.COMM_FAILURE: vmcid: SUN minor code: 203 completed: No