LuvI~ 2023-07-27 13:10 采纳率: 0%
浏览 3

Java CORBA 获取命名服务根对象引用报错

在使用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
  • 写回答

1条回答 默认 最新

  • 藏柏 2023-07-27 13:29
    关注

    可能网络波动,可以添加个超时时间参数来延长请求超时

    评论

报告相同问题?

问题事件

  • 修改了问题 7月27日
  • 创建了问题 7月27日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表