ice中间件 java_ICE中间件介绍以及demo
一:基本开发步骤
根据业务编写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相关推荐
- Express中间件工作原理介绍
Express中间件工作原理介绍 中间件是Express框架学习中最难的部分,同时也是最为核心的技术,我们的学习路线如下 1.什么是中间件 2.Express中间件的本质及工作原理 3.自定义解析po ...
- {Django基础九之中间件} 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证...
Django基础九之中间件 本节目录 一 前戏 二 中间件介绍 三 自定义中间件 四 中间件的执行流程 五 中间件版登陆认证 六 xxx 七 xxx 八 xxx 一 前戏 我们在前面的课程中已经学会了 ...
- linux运维中的中间件,linux中间件Nginx的安装过程
下面一步一步走进中间件"Nginx"中间件的安装过程中 第一步下载nginx件,本站不提供下载哈,各位看官根据自己linux的版本号下载相对应的nginx中间件.,本站以<n ...
- Qt开发技术:QCharts(三)QCharts样条曲线图介绍、Demo以及代码详解
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://blog.csdn.net/qq21497936/article/details/108022984 各位读者,知识无穷而人力有穷 ...
- 什么是中间件,中间件有什么作用
什么是中间件,中间件有什么作用 文/花纯春 @ http://blog.csdn.net/metababy 平时是埋头写代码,不闻窗外事,对盛传于世的"中间件",也只是停留在听 ...
- Qt开发技术:Q3D图表开发笔记(二):Q3DBar三维柱状图介绍、Demo以及代码详解
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130150728 各位读者,知识无穷而人力有穷,要么改需 ...
- 什么是中间件?中间件的作用,怎么使用中间件及应用场景
什么是中间件?中间件的作用,怎么使用中间件及应用场景 如果你想修改请求,例如被传送到view中的HttpRequest对象. 或者你想修改view返回的HttpResponse对象,这些都可以通过中间 ...
- Qt开发技术:Q3D图表开发笔记(三):Q3DSurface三维曲面图介绍、Demo以及代码详解
若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/130264470 各位读者,知识无穷而人力有穷,要么改需 ...
- 什么是中间件,中间件是什么意思?
经常听人提起"中间件"这个名词,什么是中间件,中间件是什么意思呢?中间件是指的架构吗? 中间件(Middleware)通常是指在一个大型分布式的系统中,负责各个不同组件(Compo ...
- php中间件,php中间件 (middleware)
什么是中间件中间件顾名思义是指在请求和响应中间,进行请求数据的拦截处理,数据校验,并且进行逻辑处理后判断是否允许进入下一个中间件.中间件分为前缀中间件,后置中间件.可以用于权限认证.日志记录等 图样图 ...
最新文章
- flask urllib上传图片
- Linux中查看各文件夹大小(扫盘)
- 2、MySQL错误日志(Error Log)详解
- Linux下多线程查看工具(pstree、ps、pstack),linux命令之-pstree使用说明
- python3中使用subprocess模块执行外部命令
- boost::type_erasure::binding_of相关的测试程序
- 真实的linux系统是怎样的,只使用Linux系统是怎样一种体验?_科技数码通
- Squeeze-and-Excitation Networks(SENet )
- 雷军:小米9完全开放购买 全面现货供应
- Python 进阶——重访 list
- 苹果自带的清理软件_苹果电脑清理软件哪个好?对比CleanMyMac和腾讯柠檬清理软件...
- 外卖产品(饿了么、美团外卖、百度外卖)竞品分析
- live streaming领域基础知识与论文总结
- win10系统ipv6服务器地址,win10系统查看电脑ipv6地址的操作方法
- 最新安卓官方api文档完整版
- Ubuntu 安装rar文件解压工具
- Mac安装ACC提示“无法检查更新 请检查您的互联网连接,然后再试一次“解决方法
- 企业应用程序集成 无缝集成云和本地应用程序以消除数据孤岛
- 程序人生 - 996(三)马云长文再谈“996”:和被剥削没关系,现在的人不傻
- HBase读取流程(源码角度)