ICE java 实例

首先介绍:

ICE是一个面向对象的中间件平台。从根本上讲,这意味着ICE提供了一些工具、API和库用以开发面向对象的客户端-服务器的应用程序。ICE应用程序适合于用在各种异构的环境中:客户端和服务器可以用不同的语言编写,能够运行在不同的操作系统、不同体系结构的机器上,可以用不同的网络技术进行通讯(大概10种以上)。这些程序的源代码可以在不同的开发环境之间移植。

在我看来其实是dcom和CORBA的封装。他和gearman和thrift类似。

一:

首先确保各个编译器安装成功。检测

Slice2java ,slice2cpp,slice2C#,slice2py,slice2vb,slice2rb等

开放端口默认开放10000

二编写Ice脚本:

module Demo{

interface Printer{

string printString(string s);

};

};

运行slice2java Demo.ice;

三,编写servant类的PrinterI:

public class PrinterI extends _PrinterDisp{

public String printString(String s, Current __current) {

// TODO Auto-generated method stub

StringBuilder sb=new StringBuilder(s);

s=sb.reverse().toString();

return s;

}

}

编写Server:

public class Server {

public static void main(String[] args) {

int status = 0;

Ice.Communicator ic = null;

try {

ic = Ice.Util.initialize(args);// 初始化参数

Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints(

"simplePrinterAdapter", "default -p 10000");// 创造对象适配器

Ice.Object objcet = new PrinterI();// 创建servant对象

adapter.add(objcet, Ice.Util.stringToIdentity("simplePrinter"));// 适配器添加一个新的servant,给servant对象取个名字

adapter.activate();

System.out.println("connection success");

ic.waitForShutdown();

} catch (Ice.LocalException e) {

e.printStackTrace();

status = 1;

} catch (Exception e) {

System.err.print(e.getMessage());

status = 1;

} finally {

if (ic != null) {

ic.destroy();

}

}

System.exit(status);

}

}

四,运行服务器端:在windows下建立的Java工程 打成ice_1.jar包放到Linux上运行

命令:java –cp ./Ice.jar:ice_1.jar Demo.Server//注意Ice.jar包放到ice_*.jar的同一个目录,(特别注意不要再按ctr+c在当前窗体运行客户端,按ctr+c它会中断服务器,NND这里把握搞得郁闷)

五,编写客户端(Java和PHP版)

Java版:

public class Client {

/**

* @param args

*/

public static void main(String[] args) {

int status = 0;

Ice.Communicator ic = null;

try {

ic = Ice.Util.initialize(args);

Ice.ObjectPrx base = ic.stringToProxy("simplePrinter:default -p 10000" +

"");

PrinterPrx printer = PrinterPrxHelper.checkedCast(base);

if (printer == null) {

System.out.println("invalid proxy");

}

String out = printer.printString("I love you");

System.out.println(out);

} catch (Ice.LocalException e) {

// TODO: handle exception

e.printStackTrace();

status = 1;

} catch (Exception e) {

System.err.print(e.getMessage());

status = 1;

} finally {

if (ic != null) {

ic.destroy();

}

}

System.exit(status);

}

}

6,测试Java先:java –cp ./Ice.jar:ice_2.jar Demo.Client//把客户端打包成ice_2.jar,

1 楼

bluky999

2012-03-15

我更喜欢thrift

ice java例子,ICE java 范例相关推荐

  1. gearman java例子_GearMan Java版试用 02- 简单应用之Worker编写和说明

    gearman分为3部分,client - server - worker,在<GearMan Java使用01>中,说明了怎么启动java版的gearman server,在这篇文章中, ...

  2. ICE学习之C# Java之间通讯

    进alibaba以来一直听说我们有部分产品之间的通讯是采用ICE架构的,它是一种简洁的分布式网络中间件.但是由于项目紧张一直没有时间研究,这两天终于有时间研究一把(而且据老大说我们今年要对旺旺提供给内 ...

  3. ice 服务java连接,“先进的互联互通技术”–使用ice联通php和java [part 1 server]

    PHP没有中间件,导致了对很多麻烦.比如,对数据库的操作必须要链接数据库,然后做SQL操作.WEB程序直接操作数据库的方法,这样会带来很多人为因素的事故隐患,以及管理上的麻烦,尤其是对大型的网站应用来 ...

  4. 一个简单的例子看java线程机制

    一个简单的例子看java线程机制 作者: zyf0808 发表日期: 2006-03-26 11:20 文章属性: 原创 复制链接 import java.util.*; public class T ...

  5. java继承类型转换_#java 一个简单的例子理解java继承、成员函数重写、类型转换...

    一个简单的例子理解java继承.成员函数重写.类型转换 1.继承简介 举一个简单的例子:笔分为很多种,比如毛笔.钢笔.圆珠笔等等,这些笔都有一些相同的属性比如长度.笔迹的粗细等等:但他们也有不同的特点 ...

  6. 反射 java 例子 get_Java反射实例

    Java反射(Reflection)就是在运行 Java 程序时,可以加载.探知.使用编译期间完全未知的类.也就是说,Java 程序可以加载一个运行时才得知类名的类,获得类的完整构造方法,并实例化出对 ...

  7. java里readfile,readfile java例子

    java-FileUtils(读取.判断.获取)-(新手) - 浪子. - 博... 2019年3月27日 实例: importorg.apache.commons.io.*;importjava.i ...

  8. java饲养员喂动物_做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处...

    做一个饲养员给动物喂食物的例子体现JAVA中的面向对象思想,接口(抽象类)的用处 interface Animal{ //动物的接口    public void eat(Food food); // ...

  9. Base64加密算法原理、具体例子及Java代码

    Base64加密算法原理.具体例子及Java代码 Base64加密算法原理.具体例子及Java代码 原理 转换过程 先将要转换的数据转成二进制数据 补位 转换 示例 代码实现 Java PHP 参考链 ...

最新文章

  1. 假设一个学校的计算机系新建,武汉大学计算机学院《计算机系统结构》08级A卷B卷及答案...
  2. AJAX的post请求与上传文件
  3. PHP中遍历stdclass object 及 json 总结[中国航天神舟十号以json形式向地面返回数据]...
  4. Python字典的setdefault() 和get()方法比较
  5. python模块安装(xgboost)
  6. Codeforces 138C(区间更新+离散化)
  7. Matplotlib 绘图秘籍
  8. [复变函数]第13堂课 作业讲解; 4 解析函数的幂级数表示法 4.1 复级数的基本性质...
  9. pandas获取索引行数据
  10. java初级开发面试题
  11. ST-Link驱动安装不正确,设备管理器黄色感叹号,win10安装stlink驱动
  12. st8s003 c语言编译器,STM8S系列单片机stm8s003f3p6性能介绍
  13. 惠普触控板使用指南_hp触摸板(hp笔记本触摸板怎么开)
  14. Java多线程游戏-雷霆战机
  15. 分布式专题(1)- 计算机网络
  16. java实现word,pdf,excel,图片添加水印
  17. Civil 3D 2012 SP 2.1发布了
  18. 6.3 GitHub - 维护项目
  19. TCP/IP协议详解(TCP/IP protocol)
  20. 微信公众平台-公众号相关api封装(java)

热门文章

  1. 使用FFMPEG库封装264视频和acc音频数据到MP4文件中
  2. 竣达技术丨机房组态系统综合监控解决方案
  3. 世界杯 叮当 机器人 树莓派_世界杯营销大战,移动互联网谁捧起了大力神杯
  4. 题目:利用指针知识,写一函数,求一个字符串的长度
  5. Fedora10下AMD,Nvidia,Intel显卡驱动安装指南
  6. APP测试面试题汇总,面试必考一定要看
  7. 【新】CSDN文章一键打印、输出PDF(自动阅读全文、全清爽模式)
  8. PDF如何插入空白页?3 次点击在PDF中插入空白页!
  9. Android拦截黑名单(简易版)
  10. ssh突然无法登录Connection closed by xxx port 22