快精灵印艺坊 您身边的文印专家
广州名片 深圳名片 会员卡 贵宾卡 印刷 设计教程
产品展示 在线订购 会员中心 产品模板 设计指南 在线编辑
 首页 名片设计   CorelDRAW   Illustrator   AuotoCAD   Painter   其他软件   Photoshop   Fireworks   Flash  

 » 彩色名片
 » PVC卡
 » 彩色磁性卡
 » 彩页/画册
 » 个性印务
 » 彩色不干胶
 » 明信片
   » 明信片
   » 彩色书签
   » 门挂
 » 其他产品与服务
   » 创业锦囊
   » 办公用品
     » 信封、信纸
     » 便签纸、斜面纸砖
     » 无碳复印纸
   » 海报
   » 大篇幅印刷
     » KT板
     » 海报
     » 横幅

ICE 2.0学习笔记1(HelloWorld)


Hello.ice #ifndef SIMPLE_ICE#define SIMPLE_ICE//名字空间 or 包名module demo.slice.Hello{ interface Hello{  void printString(string s); };};
#endif

服务器: HelloI.java
package demo.ice.Hello.server;

import demo.slice.Hello._HelloDisp;import Ice.Current;

/** * @author MudfishCN * * servant class: HelloI * _HelloDisp 基类由slice2java编译器生成,它是一个抽象类。 * _HelloDisp 抽象类包含一个printString()方式。 */public class HelloI extends _HelloDisp {

    /* (non-Javadoc)     * @see demo._HelloOperations#printString(java.lang.String, Ice.Current)     */    public void printString(String s, Current __current) {        // TODO Auto-generated method stub        System.out.println(s);    }

}

HelloServer.java
 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);    }}
HelloClient.java
package demo.ice.Hello.client;

import Ice.ObjectPrx;import Ice.Util;import demo.slice.Hello.HelloPrx;import demo.slice.Hello.HelloPrxHelper;

/** * @author MudfishCN  */public class HelloClient {    public static void main(String[] args) {        int status = 0;        String s;        //创建一个通信器的对象ic        Ice.Communicator ic = null;        try {            // 初始化ICE运行时            ic = Util.initialize(args);                        /*             * 获取远程对象的代理             * 创建一个代理对象,并用通信器的stringToProxy()方式初始化之。             * 参数:"HelloWorld:default -p 10000"             * 表示:             */            ObjectPrx base = ic.stringToProxy("HelloWorld:default -p 10000");            /*             * 要害点             */            HelloPrx hello = HelloPrxHelper.checkedCast(base);            //测试向下转变是否成功。假如不成功抛出非常信息"Invalid proxy".            if (hello == null) {                throw new Error("Invalid proxy");            }            //向服务器发送十条消息            for(int i=1;i<=10;i++){                s = "Hello,world!"+Integer.toString(i);                hello.printString(s);            }                   } catch (Ice.LocalException e) {            e.printStackTrace();            status = 1;        } catch (Exception e) {            e.printStackTrace();            status = 1;        } finally {            if (ic != null) {                //销毁通信连接                ic.destroy();            }        }        System.exit(status);    }}





返回类别: 教程
上一教程: 给jikes指定encoding属性的编译过程
下一教程: java访问com组件_jacob使用指南

您可以阅读与"ICE 2.0学习笔记1(HelloWorld)"相关的教程:
· 扬扬的J2EE学习笔记(四)Platform Services平台服务
· 《Effective Java》学习笔记(1)
· Java软件开发学习笔记(三)
· 《Effective Java》学习笔记(4)
· Java的“对象思想”学习笔记[二]
    微笑服务 优质保证 索取样品