Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
错误Java Corba错误参数_Java_Corba_Huawei Mobile Services - Fatal编程技术网

错误Java Corba错误参数

错误Java Corba错误参数,java,corba,huawei-mobile-services,Java,Corba,Huawei Mobile Services,我正在尝试建立与华为U2000 NBI corba的连接,以便使用.ior文件连接警报。我已经将IDL文件编译成Java。下面是我初始化ORB的主要代码 package com.be.u2k; import java.io.BufferedReader; import java.io.File; import java.io.FileReader; import org.omg.CORBA.ORB; import AlarmIRPSystem.AlarmIRP; import AlarmI

我正在尝试建立与华为U2000 NBI corba的连接,以便使用.ior文件连接警报。我已经将IDL文件编译成Java。下面是我初始化ORB的主要代码

package com.be.u2k;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;

import org.omg.CORBA.ORB;

import AlarmIRPSystem.AlarmIRP;
import AlarmIRPSystem.AlarmIRPHelper;

public class Main {

    public static void main(String[] args) {

        try {
          String filename = System.getProperty ("user.home") + System.getProperty ("file.separator")+"u2k.ior";

          File f = new File(filename);

          if (!f.exists()) {
            System.out.println("File " + filename + " does not exist.");
            System.exit(-1);
          } else if (f.isDirectory()) {
            System.out.println("File " + filename + " is a directory.");
            System.exit(-1);
          }

          BufferedReader br = new BufferedReader(new FileReader(f));
          String iorContents = br.readLine();
          br.close();

          ORB orbWithIor = ORB.init(args, null);
          org.omg.CORBA.Object obj = orbWithIor.string_to_object(iorContents);

          AlarmIRP alarmIrp = AlarmIRPHelper.narrow(obj);
          System.out.println("AlarmIRPHelper.narrow success!") ;
        } catch (Exception e) {
          System.out.println("ERROR : " + e) ;
          e.printStackTrace(System.out);
        }
    }
}
为什么在运行时总是出现坏参数错误

java-jar服务器u2kalarm.jar


我的天体有没有漏掉什么?谢谢。

我现在正在处理同样的问题。首先,您必须获得HW U2000的EPIRP。下面是示例代码AlarmIRP。代码尚未完成。要获取要使用的服务的IOR,必须在get_IRP_引用方法中给出相关的irpId和irpClassName

对于managerIdentifier,请阅读以下说明:


您好,我用您提供的答案初始化了到U2000的CORBA连接。我再次预览了文档,发现了这个。这是否意味着我需要在到达AlarmIRP之前先到达NotificationIRP?如果要将另一个ior字符串值传递给AlarmIRPHelper.窄带方法,那么如何从NotificationIRP对象获取ior字符串值?我检查了NotificationIRP类,没有方法get_IRP_outline。首先,您必须刷新此服务EPIRP。然后您会收到来自EPRIP obj的其他服务警报、通知IOR。谢谢。你的回答成功地缩小了EPIRP的范围。但我现在得到下面的错误,然后使用从EPIRP对象获得的ior。NotificationIRP notifIrp=NotificationIRPHelper.窄带ORB.string_to_objectNotifierpIOR.value;就是在那一部分发生了错误。NotificationIRP和AlarmIRP的错误相同。错误:org.omg.CORBA.BAD_参数:窄失败vmcid:0x0次要代码:0已完成:无org.omg.CORBA.BAD_参数:窄失败vmcid:0x0次要代码:0我认为您从EPIRP获得的报警IOR或通知IOR错误。您是否在supportedIrpList中看到AlarmIRP id和className或NotificationIRP?由于我的HWU2000系统上没有alarmIRP、notificationIRP服务,因此我没有编写更多的代码。我没有看到任何代码。这是我仅从supportedIrpList dnType:DC=www.huawei.com、SubNetwork=1、ManagementNode=1、irpId:8 irpClassName:EPIRP IRP版本:EP IRP V1.2.0 irpManagementScope:如果没有AlarmIRP或NotificationIRP类名,这意味着什么?
admin@ip-10-44-0-10:~$ java -jar ServerU2kAlarm.jar
ERROR : org.omg.CORBA.BAD_PARAM:   vmcid: 0x0  minor code: 0  completed: No
org.omg.CORBA.BAD_PARAM:   vmcid: 0x0  minor code: 0  completed: No
    at AlarmIRPSystem.AlarmIRPHelper.narrow(AlarmIRPHelper.java:60)
    at com.be.u2k.Main.main(Main.java:36)
        ***
        Properties properties = new Properties();
        properties.put("org.omg.CORBA.ORBClass", "org.jacorb.orb.ORB");
        properties.put("org.omg.CORBA.ORBSingletonClass", "org.jacorb.orb.ORBSingleton");
        properties.put("ORBInitRef.NameService", settings.getIorString());

        // Connect to name service
        ORB orb = ORB.init((String[]) null, properties);
        POA poa = POAHelper.narrow(orb.resolve_initial_references(settings.getRootPoaName()));
        poa.the_POAManager().activate();
        logger.info("ORB init success");

        org.omg.CORBA.Object obj = orb.string_to_object(settings.getIorString());

        String epirpVersion = null;
        String systemDn = null;
        String irpId = null;
        String irpClassName = null;
        EPIRP epirp = EPIRPHelper.narrow(obj);
        String[] epirpVersions = epirp.get_EP_IRP_versions();
        for (String str : epirpVersions) {
            if (null != str && !"".equals(str.trim())) {
                epirpVersion = str;
            }
        }

        SupportedIRPListTypeHolder supportedIrpList = new SupportedIRPListTypeHolder();
        if (ResultType._OK == epirp.get_IRP_outline("", supportedIrpList).value()) {
            SupportedIRPListTypeElement[] typeHolder = supportedIrpList.value;
            for (SupportedIRPListTypeElement irpListEle : typeHolder) {
                systemDn = irpListEle.systemDN;

                logger.info("dnType:    " + systemDn);
                for (IRPElement irpElement : irpListEle.irpList) {
                    irpId = irpElement.irpId;
                    logger.info("irpId: " + irpId);
                    irpClassName = irpElement.irpClassName;
                    logger.info("irpClassName: " + irpClassName);
                    logger.info("irpVersion: " + irpElement.irpVersion);
                    logger.info("irpManagementScope: ");
                    for (String s : irpElement.irpManagementScope.value()) {
                        logger.info(s);
                    }
                }
            }
        } else {
            logger.error("Failed");
        }

        StringHolder alarmIrpIOR = new StringHolder();
        epirp.get_IRP_reference(managerIdentifier, systemDn, irpId, irpClassName, alarmIrpIOR);
        logger.info("AlarmIRP:" + alarmIrpIOR.value);

        //Connect to AlarmIRP
        AlarmIRP alarmIRP = AlarmIRPHelper.narrow(orb.string_to_object(alarmIrpIOR.value));