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

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

一、写一个ice定义

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

file_name:HelloWorld.ice

module myHelloWorld{
interface HelloWorld{
void say(string s);
};
};

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”后缀,如下:

  

package client;

import Ice.Current;
import myHelloWorld._HelloWorldDisp; public class HelloWorldI extends _HelloWorldDisp{ private static final long serialVersionUID = 1L; @Override
public void say(String s, Current __current) {
System.out.println("Hello World!"+" the string s is " + s);
}
}

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

四、编写远程的服务器类

package client;
public class Server { public static void main(String[] args)
{
int status = 0;
// Communicator实例,是ice run time的主句柄
Ice.Communicator ic = null;
try
{
// 调用Ice.Util.Initialize()初始化Ice run time
System.out.println("初始化ice run time...");
ic = Ice.Util.initialize(args); // 创建一个对象适配器,传入适配器名字和在10000端口处接收来的请求
System.out.println("创建对象适配器,监听端口10000...");
Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints("SimplePrinterAdapter", "default -p 10000"); // 实例化一个PrinterI对象,为Printer接口创建一个servant
System.out.println("为接口创建servant...");
Ice.Object object = new HelloWorldI(); // 调用适配器的add,告诉它有一个新的servant,传递的参数是刚才的servant,这里的“SimplePrinter”是Servant的名字
System.out.println("对象适配器加入servant...");
adapter.add(object, Ice.Util.stringToIdentity("SimplePrinter")); //调用适配器的activate()方法,激活适配器。被激活后,服务器开始处理来自客户的请求。
System.out.println("激活适配器,服务器等待处理请求...");
adapter.activate(); //这个方法挂起发出调用的线程,直到服务器实现终止为止。或我们自己发出一个调用关闭。
ic.waitForShutdown();
} catch (Ice.LocalException e)
{
e.printStackTrace();
status = 1;
} catch (Exception e)
{
e.printStackTrace();
status = 1;
} finally
{
if (ic != null)
{
ic.destroy();
}
}
System.exit(status);
}
}

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

五、编写客户端类

package client;
import myHelloWorld.HelloWorldPrx;
import myHelloWorld.HelloWorldPrxHelper; public class Client { public static void main(String[] args)
{
int status = 0;
// Communicator实例
Ice.Communicator ic = null;
try
{
// 调用Ice.Util.Initialize()初始化Ice run time
ic = Ice.Util.initialize(args); // 获取远地打印机的代理
Ice.ObjectPrx base = ic.stringToProxy("SimplePrinter:default -p 10000"); // 将上面的代理向下转换成一个Printer接口的代理
HelloWorldPrx helloWorld = HelloWorldPrxHelper.checkedCast(base); // 如果转换成功
if (helloWorld == null)
{
throw new Error("Invalid proxy");
} // 调用这个代理,将字符串传给它
helloWorld.say("bar"); } catch (Ice.LocalException e)
{
e.printStackTrace();
status = 1;
} catch (Exception e)
{
e.printStackTrace();
status = 1;
} finally
{
if (ic != null)
{
ic.destroy();
}
}
System.exit(status);
}
}

六、运行

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

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

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

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

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

初始化ice run time...
创建对象适配器,监听端口10000...
为接口创建servant...
对象适配器加入servant...
激活适配器,服务器等待处理请求...
Hello World! the string s is bar
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. WPF学习之路(十二)控件(Range控件)

    ProgressBar 进度条,主要属性:Minimum\Maximun\Value, IsIndeterminate为True时,进度条会循环运转 <Grid> <Grid.Row ...

  2. Ajax最详细的参数解析和场景应用

    4.1.定义和用法 AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 J ...

  3. MySql 中 case when then else end 的用法

    解释: SELECT                case                   -------------如果    when sex='1' then '男' ---------- ...

  4. mysql 5.5多实例部署【图解】

    mysql5.5数据库多实例部署,我们可以分以下几个步骤来完成. 1. mysql多实例的原理 2. mysql多实例的特点 3. mysql多实例应用场景 4. mysql5.5多实例部署方法 一. ...

  5. Java高级编程之URL处理

    Java URL处理 URL(Uniform Resource Locator)中文名为统一资源定位符,有时也被俗称为网页地址.表示为互联网上的资源,如网页或者FTP地址. 本章节我们将介绍Java是 ...

  6. Centos修改DNS重启或者重启network服务后丢失问题处理

    本文版权归mephisto和博客园共有,欢迎转载,但须保留此段声明,并给出原文链接,谢谢合作. 文章是哥(mephisto)写的,SourceLink 阅读目录 介绍 起因 处理 GitHub 本文版 ...

  7. MySQL 优化之 index merge(索引合并)

    深入理解 index merge 是使用索引进行优化的重要基础之一.理解了 index merge 技术,我们才知道应该如何在表上建立索引. 1. 为什么会有index merge 我们的 where ...

  8. python简单爬虫定时推送同花顺直播及荐股至邮箱

    1.初衷:实践 2.技术:python requests Template 3.思路:根据直播页面获取评价最高的前十博主,定时爬行最新的消息和实战股票 4.思路:python 编辑简单邮件html模板 ...

  9. 如何获得浏览器localStorage的剩余容量

    一.如何获取localStorage的剩余容量 在H5大行其道的今天,localStorage(本地存储)对每一个前断攻城师来说都不太陌生.同时localStorage也给我们带来了极大的便利,不用于 ...

  10. 高性能MySQL笔记 第6章 查询性能优化

    6.1 为什么查询速度会慢   查询的生命周期大致可按照顺序来看:从客户端,到服务器,然后在服务器上进行解析,生成执行计划,执行,并返回结果给客户端.其中“执行”可以认为是整个生命周期中最重要的阶段. ...