package demo.ice.Hello.server; import Ice.LocalException; /** * @author MudfishCN * version: 1.0.1 */ public class HelloServer { public static void main(String[] args) { // 定义status变量,用来控制服务器. int status = 0; Ice.Communicator ic = null; //声明一个Communicator 对象ic try { // 初始化Ice运行时 ic = Ice.Util.initialize(args); /* * 创建一个对象适配器(ObjectAdapter)对象IOAdapter,并初始化之。 * 参数"HelloWorldAdapter":表示适配器的名字。 * 参数"default -p 10000":表示适配器使用缺省协议(TCP/IP)在端口10000处监听到来的请求。 * 服务器配置完成. */ Ice.ObjectAdapter IOAdapter = ic.createObjectAdapterWithEndpoints( "HelloWorldAdapter", "default -p 10000"); /* * 为Hello接口创建一个servant. */ Ice.Object IObject = (Ice.Object) new HelloI(); /* * 将新的servant添加到适配器, * 并将这个新的servant命名为"HelloWorld" */ IOAdapter.add(IObject, Ice.Util.stringToIdentity("HelloWorld")); /* * 激活适配器,以使服务器开始处理来自客户的请求 */ IOAdapter.activate(); /* * 挂起发出调用的线程,直到服务器实现终止为止. * 或者是通过发出一个调用关闭运行时(run time)的指令来使服务器终止. */ ic.waitForShutdown(); } catch (LocalException e) { // 捕捉ICE运行时可能抛出的所有异常 e.printStackTrace(); status = 1; } catch (Exception e) { // 捕捉串常量 e.printStackTrace(); status = 1; } finally { if (ic != null) { ic.destroy(); } } System.exit(status); } } |