📄 servermain.java
字号:
// 服务端的主程序
import java.io.File;
import java.io.FileOutputStream;
import java.io.PrintWriter;
import org.omg.PortableServer.*;
import interfaceImpl.*;
public class ServerMain
{
public static void main(String[] args)
{
try {
// 初始化ORB
org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args, null);
// 取根POA的引用
org.omg.CORBA.Object obj = orb.resolve_initial_references("RootPOA");
POA rootPOA = POAHelper.narrow(obj);
// 创建持久POA的策略
org.omg.CORBA.Policy[] policies = {
//rootPOA.create_lifespan_policy(LifespanPolicyValue.PERSISTENT),
rootPOA.create_request_processing_policy(RequestProcessingPolicyValue.USE_SERVANT_MANAGER),
//rootPOA.create_id_assignment_policy(IdAssignmentPolicyValue.SYSTEM_ID)
};
// 用新定义的策略创建myPOA
POA myPOA = rootPOA.create_POA("BankPOA", rootPOA.the_POAManager(), policies);
// 创建伺服对象AccountManagerImpl
AccountManagerImpl managerServant = AccountManagerImpl.getInstance(args.length!=0,args.length!=0?args[0]:null,rootPOA);
// 创建伺服对象AccountIterator
AccountIteratorImpl iteratorServant = new AccountIteratorImpl();
// 在myPOA上用标识"BankManager"激活伺服对象
myPOA.activate_object_with_id("BankManager".getBytes(), managerServant);
//在myPOA上用标识"BankIterator"激活伺服对象
myPOA.activate_object_with_id("BankIterator".getBytes(), iteratorServant);
// 激活POA管理器
rootPOA.the_POAManager().activate();
// Get a reference to the managerServant and write it down.
obj = myPOA.servant_to_reference(managerServant);
PrintWriter ps = new PrintWriter(new FileOutputStream(new File("managerServer.ior")));
ps.println(orb.object_to_string(obj));
ps.close();
// Get a reference to the iteratorServant and write it down.
obj = myPOA.servant_to_reference(iteratorServant);
PrintWriter ps2 = new PrintWriter(new FileOutputStream(new File("iteratorServer.ior")));
ps2.println(orb.object_to_string(obj));
ps2.close();
// 等待处理客户程序的请求
System.out.println("账户管理员BankManager已就绪 ...\n");
orb.run();
}catch(java.lang.NullPointerException e){
System.out.println("没有相关记录!");
}catch(Exception exc) {
exc.printStackTrace();
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -