之前在网上查询较多连接方法无法建立正确连接,参考无数文档后找到了自己的方法,以助于其他小伙伴们少走弯路。出处不太记得了不贴了。(相关的java类是华为北向接口类可查询下载)
初始化方法如下
public class Demo {
private static final String SERVER_IP="";
private static final String SERVER_PORT ="";
private static final String USER_NAME="";
private static final String PASSWORD="";
private POA rootPoa = null;
private EmsSessionFactory_I pEmsSessionFactory = null;
private EmsSession_I pEmsSession = null;
public void init() {
String[] args = new String[40];
orb = ORB.init(args, null);
//init POA
try {
Object obj1 = orb.resolve_initial_references("RootPOA");
rootPoa = POAHelper.narrow(obj1);
rootPoa.the_POAManager().activate();
obj1 = orb.string_to_object("corbaloc:iiop:1.2@" + SERVER_IP + ":" + SERVER_PORT + "/NameService");
NamingContextExt defaultcontext = NamingContextExtHelper.narrow(obj1);
assert (!(defaultcontext == null));
org.omg.CORBA.Object obj2 = defaultcontext.resolve_str("WRI/EMS_1\\/SESSIONFACTORY.SESSIONFACTORY");
assert (!(obj2 == null));
//获取session工厂
pEmsSessionFactory = EmsSessionFactory_IHelper.narrow(obj2);
//登录获取权限
NmsSession_I pNmsSession = null;
EmsSession_IHolder emsSessionIHolder = new EmsSession_IHolder();
pEmsSessionFactory.getEmsSession(USER_NAME, PASSWORD, pNmsSession, emsSessionIHolder);
pEmsSession = emsSessionIHolder.value;
//接下来就可以根据pEmsSession获取各种接口相关的管理器
if (orb != null) {
orb.destroy();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}