Ice是一种面向对象的中间间平台,入门ice,简单的HelloWorld是必不可少的。

转载请注明http://www.cnblogs.com/zrtqsk/p/3745286.html,谢谢。

一、写一个ice定义

  ice用来定义接口、程序骨架的,方便远程调用。首先我们要使用ice专属的slice语言写一个ice定义。如下:

file_name:HelloWorld.ice

  1. module myHelloWorld{
  2. interface HelloWorld{
  3. void say(string s);
  4. };
  5. };

module相当于java中的包,是ice定义中必不可少的。

二、编译这个ice定义  

  要编译这个ice定义,首先要安装一个ice服务器,将其中的bin文件夹加入环境变量。跟jdk配置类似。然后使用其中的slice2java命令编译。

  例如HelloWorld.ice文件放在我F盘的test文件夹,运行aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAATAAAAAVCAIAAABOjyWVAAACHUlEQVR4nO2aUVLDMAxEdd3cqtegtyjH6CXMH7S2tVo5TmJg3zCMx1FXKymiP1iJMLNSyv3xvH/+/Hw8nrfbbds2E0JMRAspxEJoIYVYCC2kEAuhhRRiIbSQQiyEFlKIhdBCCrEQOxfS+8iCZL3hivZXGnbszGa+5iLzev5Tb0IVtqdkZl68+GVvcnejqtoK/IbMzhIEzGrBxFf8oIVkmrb4QuLg8xcyVPiPC2nvy/AqUl16TmZVNPb0OFdA9rLZz/DzVxfyMuYuZHf32i54W1rlbR95H2F0vOyp4KyfUJ9PAS4H6gIedvZnoChgwzPjpcZ5+VaQ/sH9ICXCuIXMevIKA2HM2dPxZIEOVgNJSZ+hWyZ1qI9TVDHtHE/rTzUOZr6V1VTekFnzTdNOoh1MGf2GHK4Z2MPx4D6VN5sFh3X9Z1N3dbyzF8/kas9AZ6A/3fP37+oA6upmJ/OGAJ02jO8zmxhgmYX0xJmyu5FhkeFISMGd99mPhz6NeIkHzntypaoA/fEekR5S8832gdEBYRMoEXbkQlpvHsxgsgPuRmIdcAmS7vef0rT3CfJ1DeQ6oj/mzIuJDwsJ/bd9y+pk+xxTIgwuZBU57KEy4zlk7rEO7oB33/Yd34f6WKRr+DWy+wg0wau9qwCsHtcfMq8nwuTFLU3V5cWDDrO06Vs3Rf+pcxbtG3CtH3E2WsjVmPwXV/wutJBCLIQWUoh1+AJOIi0PeJhAzQAAAABJRU5ErkJggg==" alt="" />,就可以在test目录出现如下文件:

  aaarticlea/png;base64,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" alt="" />

  myHelloWorld文件夹名是ice定义中的module名。

三、编写Servant类

  servant类是ice服务器端提供操作调用的行为制品,它提供的是ice对象的实质内容。说白了,就是ice所定义的接口,在服务器端的实现类。

  按照管理,servant类名是ice接口名加一个“I”后缀,如下:

  

  1. package client;
  2.  
  3. import Ice.Current;
  4. import myHelloWorld._HelloWorldDisp;
  5.  
  6. public class HelloWorldI extends _HelloWorldDisp{
  7.  
  8. private static final long serialVersionUID = 1L;
  9.  
  10. @Override
  11. public void say(String s, Current __current) {
  12. System.out.println("Hello World!"+" the string s is " + s);
  13. }
  14. }

如上,servant类需要继承_HelloWorldDisp这个slice2java编译生成的抽象类。实现方法参数是原本的形参加一个Ice的Current对象。

四、编写远程的服务器类

  1. package client;
  2. public class Server {
  3.  
  4. public static void main(String[] args)
  5. {
  6. int status = 0;
  7. // Communicator实例,是ice run time的主句柄
  8. Ice.Communicator ic = null;
  9. try
  10. {
  11. // 调用Ice.Util.Initialize()初始化Ice run time
  12. System.out.println("初始化ice run time...");
  13. ic = Ice.Util.initialize(args);
  14.  
  15. // 创建一个对象适配器,传入适配器名字和在10000端口处接收来的请求
  16. System.out.println("创建对象适配器,监听端口10000...");
  17. Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000");
  18.  
  19. // 实例化一个PrinterI对象,为Printer接口创建一个servant
  20. System.out.println("为接口创建servant...");
  21. Ice.Object object = new HelloWorldI();
  22.  
  23. // 调用适配器的add,告诉它有一个新的servant,传递的参数是刚才的servant,这里的“SimplePrinter”是Servant的名字
  24. System.out.println("对象适配器加入servant...");
  25. adapter.add(object, Ice.Util.stringToIdentity("SimplePrinter"));
  26.  
  27. //调用适配器的activate()方法,激活适配器。被激活后,服务器开始处理来自客户的请求。
  28. System.out.println("激活适配器,服务器等待处理请求...");
  29. adapter.activate();
  30.  
  31. //这个方法挂起发出调用的线程,直到服务器实现终止为止。或我们自己发出一个调用关闭。
  32. ic.waitForShutdown();
  33. } catch (Ice.LocalException e)
  34. {
  35. e.printStackTrace();
  36. status = 1;
  37. } catch (Exception e)
  38. {
  39. e.printStackTrace();
  40. status = 1;
  41. } finally
  42. {
  43. if (ic != null)
  44. {
  45. ic.destroy();
  46. }
  47. }
  48. System.exit(status);
  49. }
  50. }

这个服务器类其实就寥寥几行代码,注释已经很清楚了。

五、编写客户端类

  1. package client;
  2. import myHelloWorld.HelloWorldPrx;
  3. import myHelloWorld.HelloWorldPrxHelper;
  4.  
  5. public class Client {
  6.  
  7. public static void main(String[] args)
  8. {
  9. int status = 0;
  10. // Communicator实例
  11. Ice.Communicator ic = null;
  12. try
  13. {
  14. // 调用Ice.Util.Initialize()初始化Ice run time
  15. ic = Ice.Util.initialize(args);
  16.  
  17. // 获取远地打印机的代理
  18. Ice.ObjectPrx base = ic.stringToProxy("SimplePrinter:default -p 10000");
  19.  
  20. // 将上面的代理向下转换成一个Printer接口的代理
  21. HelloWorldPrx helloWorld = HelloWorldPrxHelper.checkedCast(base);
  22.  
  23. // 如果转换成功
  24. if (helloWorld == null)
  25. {
  26. throw new Error("Invalid proxy");
  27. }
  28.  
  29. // 调用这个代理,将字符串传给它
  30. helloWorld.say("bar");
  31.  
  32. } catch (Ice.LocalException e)
  33. {
  34. e.printStackTrace();
  35. status = 1;
  36. } catch (Exception e)
  37. {
  38. e.printStackTrace();
  39. status = 1;
  40. } finally
  41. {
  42. if (ic != null)
  43. {
  44. ic.destroy();
  45. }
  46. }
  47. System.exit(status);
  48. }
  49. }

六、运行

  先运行服务器,服务器线程一直运行等待,如下:  

  1. 初始化ice run time...
  2. 创建对象适配器,监听端口10000...
  3. 为接口创建servant...
  4. 对象适配器加入servant...
  5. 激活适配器,服务器等待处理请求...

  运行了客户端后,显示如下:

  1. 初始化ice run time...
  2. 创建对象适配器,监听端口10000...
  3. 为接口创建servant...
  4. 对象适配器加入servant...
  5. 激活适配器,服务器等待处理请求...
  6. Hello World! the string s is bar

  将客户端改一下 helloWorld.say("foo");,再运行,显示如下:

  1. 初始化ice run time...
  2. 创建对象适配器,监听端口10000...
  3. 为接口创建servant...
  4. 对象适配器加入servant...
  5. 激活适配器,服务器等待处理请求...
  6. Hello World! the string s is bar
  7. Hello World! the string s is foo

(部分参考《Ice分布式程序设计》)

Ice的HelloWorld(Java)的更多相关文章

  1. HelloWorld[Java]

    public class HelloWorld{ public static void main(String args[]){ System.out.println("HelloWorld ...

  2. Java基础教程1:环境配置及第一个HelloWorld.java

    本文主要介绍JDK环境配置.Sublime Text3配置及第一个HelloWorld.Java程序.运行环境为Win10系统,使用JDK1.8版本. 1. JDK下载及环境配置 1.1 JDK下载 ...

  3. Java入门-类HelloWorld是公共的,应在名为HelloWorld.java的文件中声明

    开始学习java了,搭好环境,notepad++中新建一个java文件,新建一个HelloWorld类, public class HelloWorld { public static void ma ...

  4. 1、Java语言概述与开发环境——编译和运行第一个程序HelloWorld.java

    编写一个Java程序到运行的步骤概述: 1.将Java代码编写到扩展名为.Java的文件中 2.通过Javac命令对该Java文件进行编译 3.通过Java命令对生成的class文件进行运行 一.编写 ...

  5. 开发zeroc ice应用入门(java开发ice应用,python开发ice应用,java与python结合开发ice服务)

    ice作为一种rpc框架,为主流平台设计,包括Windows和Linux,支持广泛的语言,包括C++,Java,C#(和其他.Net的语言,例如Visual Basic),Python,Ruby,PH ...

  6. Day01_05_Java第一个程序 HelloWorld - java类规则

    第一个程序Hello World *基础语法规则: 1. 第一个Java程序 HelloWorld! public class HelloWorld{ public static void main( ...

  7. 报错:①Tog goal specified requires a project to execute but there is no POM in this directory......②说类HelloWorld是公共的, 应在名为 HelloWorld.java 的文件中声明 public class HelloWorld......

    在运行Maven的命令时,在DOS窗口里面必须把目录切换到项目的根部,要不然命令是找不到目的地. 下图是错误示范,项目在Demo02这个目录里,就必须将目录切换到Demo02下,否则DOS窗口只有飘红 ...

  8. Java(Helloworld.java)

    public class A{ public static void main(String args[]){ System.out.println("Hello world!") ...

  9. ICE学习第二步-----从第一个程序了解ICE(HelloWorld)

    ICE(Internet Communications Engine)是一种面向对象的中间件平台,主要用于网络通讯.它为面向对象的“客户端-服务器”模型的应用提供了一组很好的工具和API接口.目前在全 ...

随机推荐

  1. DB2导入导出编目配置

    可使用db2cfexp和db2cfimp导出导入DB2数据库编码信息.这对于编目信息从一台机器复制到另一台机器时十分有用. 命令详细信息: db2cfexp db2cfexp exports conf ...

  2. 使用AS3输出ByteArray为16进制

    package { import flash.utils.ByteArray; /** * 输出ByteArray为16进制 * @author Rise */ public class Byte2H ...

  3. #VSTS 日志# TFS 2015 Update 1 发布 – Git和TFVC代码库可以混合使用了

    Visual Studio Team Foundation Server 2015 Update 1已经发布了. 这是 Team Foundation Server (TFS) 的最新版本,是 Mic ...

  4. EasyUi 改变 selelct 的 下拉内容 div 的高度

    直接上 效果图: 修改之后的  滚动条高度: 代码:  源代码下载

  5. mysql 命令行操作入门(详细讲解版)

    之前分享过多次Mysql主题,今天继续分享mysql命令行入门   1. 那么多mysql客户端工具,为何要分享命令行操作? -快捷.简单.方便 -在没有客户端的情况下怎么办 -如果是mysql未开启 ...

  6. ofbiz 本地化及邮件设置126邮箱

    ofibz登陆功能有通过电子邮件找会密码的功能,但找回密码功能需要配置一个发送email的邮箱账号和smtp服务器的配置,具体配置如下: 1:在ofbiz数据库的表product_store_emai ...

  7. 电话薄设计--java

    package com.hanqi.telbook; import java.util.Scanner; public class Menu { //主菜单 public void mainMenu( ...

  8. 玉渊潭赏樱花有感:从无到有写一个jQuery开源插件

    “玉渊潭公园樱花节”是每年樱花绽放时,都会在玉渊潭公园樱举办樱花节,游客前往玉渊潭公园,可以欣赏到20个品种2000株樱花.2016玉渊潭樱花节时间:3月中旬-4月中旬观赏最佳,2016年3月23日开 ...

  9. 《PHP开发APP接口》笔记

    PHP开发APP接口 [TOC] 课程地址 imooc PHP开发APP接口 学习要点 APP接口简介 封装通信接口方法 核心技术 APP接口实例 服务器端 -> 数据库|缓存 -> 调用 ...

  10. Android横竖屏切换重载问题与小结

    (转自:http://www.cnblogs.com/franksunny/p/3714442.html) (老样子,图片啥的详细文档,可以下载后观看 http://files.cnblogs.com ...