一:基本开发步骤

根据业务编写slice:写任何ICE应用的第一步都要编写一个slice定义,其中包含了这个应用的所有接口

编写实现接口代码:命名规则就是接口的名字加上I

编写server端代码

写配置文件,部署服务

编写client端代码

先启动server端服务,然后启动client端服务

二:demo(安装ice服务)

定义一个接口,建立一个Printer.ice文件

moudle Demo{

interface Printer{

void printString(string s);

};

};

2.在DOS环境下执行slice2java Printer.ice

3.引入Ice.jar包

4.定义类PrinterI并且继承_PrinterDisp

public class PrinterI extends _PrinterDisp{

private static final long serialVersionUID = -2685822703123295227L;

public void printString(String s, Ice.Current current){

System.out.println(s);

}

}

5.编写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 object = new PrinterI();

adapter.add(object,ic.stringToIdentity("SimplePrinter") );//servant标识符,用于在客户端连接

adapter.activate();

ic.waitForShutdown();

}catch(Ice.LocalException e){

e.printStackTrace();

status = 1;

}catch(Exception e){

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

status = 1;

}

if( ic != null){

//clean up

try{

ic.destroy();

}catch(Exception e){

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

status = 1;

}

}

System.exit(status);

}

}

6.编写client端

import panda.generated.Demo.PrinterPrx;

import panda.generated.Demo.PrinterPrxHelper;

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)

throw new Error("Invalid proxy");

printer.printString("Hello World!");

}catch (Ice.LocalException e){

e.printStackTrace();

status = 1;

}catch (Exception e){

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

status = 1;

}

if( ic != null ){

//clean up

try{

ic.destroy();

}catch (Exception e){

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

status = 1;

}

}

System.exit(status);

}

}

ice中间件 java_ICE中间件介绍以及demo相关推荐

  1. Express中间件工作原理介绍

    Express中间件工作原理介绍 中间件是Express框架学习中最难的部分,同时也是最为核心的技术,我们的学习路线如下 1.什么是中间件 2.Express中间件的本质及工作原理 3.自定义解析po ...

  2. {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证...

    Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...

  3. linux运维中的中间件,linux中间件Nginx的安装过程

    下面一步一步走进中间件"Nginx"中间件的安装过程中 第一步下载nginx件,本站不提供下载哈,各位看官根据自己linux的版本号下载相对应的nginx中间件.,本站以<n ...

  4. Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108022984 各位读者,知识无穷而人力有穷 ...

  5. 什么是中间件,中间件有什么作用

    什么是中间件,中间件有什么作用 文/花纯春 @ http://blog.csdn.net/metababy   平时是埋头写代码,不闻窗外事,对盛传于世的"中间件",也只是停留在听 ...

  6. Qt开发技术:Q3D图表开发笔记(二):Q3DBar三维柱状图介绍、Demo以及代码详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130150728 各位读者,知识无穷而人力有穷,要么改需 ...

  7. 什么是中间件?中间件的作用,怎么使用中间件及应用场景

    什么是中间件?中间件的作用,怎么使用中间件及应用场景 如果你想修改请求,例如被传送到view中的HttpRequest对象. 或者你想修改view返回的HttpResponse对象,这些都可以通过中间 ...

  8. Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解

    若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130264470 各位读者,知识无穷而人力有穷,要么改需 ...

  9. 什么是中间件,中间件是什么意思?

    经常听人提起"中间件"这个名词,什么是中间件,中间件是什么意思呢?中间件是指的架构吗? 中间件(Middleware)通常是指在一个大型分布式的系统中,负责各个不同组件(Compo ...

  10. php中间件,php中间件 (middleware)

    什么是中间件中间件顾名思义是指在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件.中间件分为前缀中间件,后置中间件.可以用于权限认证.日志记录等 图样图 ...

最新文章

  1. flask urllib上传图片
  2. Linux中查看各文件夹大小(扫盘)
  3. 2、MySQL错误日志(Error Log)详解
  4. Linux下多线程查看工具(pstree、ps、pstack),linux命令之-pstree使用说明
  5. python3中使用subprocess模块执行外部命令
  6. boost::type_erasure::binding_of相关的测试程序
  7. 真实的linux系统是怎样的,只使用Linux系统是怎样一种体验?_科技数码通
  8. Squeeze-and-Excitation Networks(SENet )
  9. 雷军:小米9完全开放购买 全面现货供应
  10. Python 进阶——重访 list
  11. 苹果自带的清理软件_苹果电脑清理软件哪个好?对比CleanMyMac和腾讯柠檬清理软件...
  12. 外卖产品(饿了么、美团外卖、百度外卖)竞品分析
  13. live streaming领域基础知识与论文总结
  14. win10系统ipv6服务器地址,win10系统查看电脑ipv6地址的操作方法
  15. 最新安卓官方api文档完整版
  16. Ubuntu 安装rar文件解压工具
  17. Mac安装ACC提示“无法检查更新 请检查您的互联网连接,然后再试一次“解决方法
  18. 企业应用程序集成 无缝集成云和本地应用程序以消除数据孤岛
  19. 程序人生 - 996(三)马云长文再谈“996”:和被剥削没关系,现在的人不傻
  20. HBase读取流程(源码角度)

热门文章

  1. idea实现打包springboot项目并且运行在cmd中
  2. 谢谢版主整理的好材料,,妈妈再也不用担心的我的unity
  3. Windows下打包安装程序
  4. MySQL--binlog--介绍/用法
  5. 银行考试计算机也需要考金融知识吗,银行招聘考试科技岗考试科目及考试内容...
  6. 使用mybatisplus中的selectone方法,查询一条信息。报错
  7. 路由器关闭DHCP之后连接不到路由器设置界面?
  8. python入门之函数结构第二关_Python入门二:函数
  9. 皮尔森相关系数和样本方差
  10. Python高级用法:索引和切片