U2000北向 CORBA客户端代码Java编程示例

本文提供了一个U2000北向CORBA接口的Java编程示例,包括如何获取EmsSession、查询支持的manager列表以及事件通知订阅和过滤的关键代码。示例代码涉及EmsSessionFactory_I、NmsSession_IPOA和StructuredPushConsumer等接口的使用。
摘要由CSDN通过智能技术生成

**

客户端代码Java编程示例

**
 使用生成u2000_idl.jar和C:\JacORB-2.2.4\lib内的jar包进行客户端代码的开发
图 Eclipse 代码demo环境

在这里插入图片描述
通过下面编程示例demo(包含4个类Client,AlarmReciever,TANmsSession_IImpl,Util),实现获取EmsSession、查询U2000支持的manager列表和事件通知订阅。
1 获取EmsSession和查询U2000支持的manager列表
详细的代码示例如下:
package demo;
/**

  • iManager U2000 CORBA interface client program demo
    */
    //Common java data type import
    import mtnm.tmforum.org.emsSession.EmsSession_I;
    import mtnm.tmforum.org.emsSession.EmsSession_IHolder;
    import mtnm.tmforum.org.emsSession.EmsSession_IPackage.managerNames_THolder;
    import mtnm.tmforum.org.emsSessionFactory.EmsSessionFactory_I;
    import mtnm.tmforum.org.emsSessionFactory.EmsSessionFactory_IHelper;
    import mtnm.tmforum.org.nmsSession.NmsSession_I;
    import mtnm.tmforum.org.nmsSession.NmsSession_IPOA;

import org.omg.CosNaming.NameComponent;
import org.omg.DynamicAny.DynAnyFactory;
import org.omg.DynamicAny.DynAnyFactoryHelper;

/************************************************************
Type : client demo program code
Description : U2000 CORBA Program development demo to get emsSession object
************************************************************/
public class Client {
private Client() {
}

private static Client instance = new Client();

public static Client getInstance() {
	return instance;
}
//ORB object
private static org.omg.CORBA.ORB orb = null;

//POA object reference
private static org.omg.PortableServer.POA rootPOA = null;

//emsSeesion object
private static EmsSession_I emsSession = null;

//dynamic any factory,  for translating any type to dynamic any type
private static DynAnyFactory dynAnyFactory = null;;

public static void log(String str) {
	System.out.println(str);
}
//
public static void main(String[] args) {
	if(args.length<4){
		log("usage: java demo.Client 10.71.227.152 12001 admin test1234");
		return;
	}
	log("-------------------------------------------------------");
	log("Naming service IP: " + args[0]);
	log("Naming service port: " + args[1]);
	log("EMS user name : " + args[2]);
	log("Password for user " + args[2] + " : " + args[3]);
	log("-------------------------------------------------------");
	Client.getInstance().connect(args[0], args[1], args[2], args[3]);
}

/*
 * NSIP: naming service IP
 * NSPort: naming service port
 * userName: an EMS user name
 * passWord: the password for a specified EMS user
 */
public  int connect(String NSIP, String NSPort,String userName, String passWord) {
	try {
		//initialize ORB parameters
		String argv[] = new String[2];
		argv[0] = "-ORBInitRef";
		argv[1] = "NameService=corbaloc::" + NSIP + ":" + NSPort+ "/NameService";

		//The step 1: initialize ORB
		orb = org.omg.CORBA.ORB.init(argv, null);
		log("The step 1: initialize ORB successfully!");

		//The step 2: get RootPOA
		rootPOA = org.omg.PortableServer.POAHelper.narrow(orb.resolve_initial_references("RootPOA"));
		rootPOA.the_POAManager().activate();
		log("The step 2: get RootPOA successfully!");

		//the step 3: construct dynamic any factory
		dynAnyFactory = DynAnyFactoryHelper.narrow(orb
				.resolve_initial_references("DynAnyFactory"));
		log("the step 3: construct dynamic any factory."
				+ (dynAnyFactory!= null ? "successfully!" : "failed!"));

		//The step 4: get naming service root object reference
		org.omg.CosNaming.NamingContextExt nc = org.omg.CosNaming.NamingContextExtHelper
				.narrow(orb.resolve_initial_references("NameService"));
		log("The step 4: get naming service root object refrence successfull
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值