消息中间件 ICE 快速入门示例 (java 语言)

1.首先安装 ice的环境(与安装jdk非常相似)

 【1】下载Ice-3.2.0.zip

 【2】配置环境变量

2.使用

   在开发工具(eclipse或idea)中创建项目,在根目录上创建 .ice文件;进入这个文件所在的真实目录,执行命令行  slice2java ,生成ice文件

 

[["java:package:com.ice.temp"]]

module temp{

     interface tempDemo{

     string  sayTemp(string str);

 };

};

说明:生成的文件所在的包是 :com.ice.temp.temp

     服务接口是 tempDemo

     服务方法是 sayTemp(string str);

     引用类型不能大写 例如 : string ;而写 String 执行命令时候会报错

 

执行 slice2java *.ice 命令生成的文件截图如下

 

3.编写服务端的服务类

 

import com.ice.temp.temp._tempDemoDisp;

import Ice.Current;

// 继承 _tempDemoDisp类,重写sayTemp()方法

public class TempServer extends _tempDemoDisp{

    /**

     * 真实的业务逻辑

     */

     @Override

     public String sayTemp(String str, Current __current) {

          System.out.println("服务端处理接口收到请求");

          return "处理完成,正常响应结果";

     }

}

4.编写服务端

 

importIce.Communicator;

import Ice.ObjectAdapter;

public class TestServer {

     public static void main(String[] args) {

          // 初始化一些配置信息

          Communicator ic = Ice.Util.initialize(args);

          //创建适配器监听某一个端口

          ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints("tempAdapter","tcp -h 127.0.0.1 -p 10000");

          //创建一个服务单元

          TempServer tempServer = new TempServer();

          //将服务单元加入到适配器,同时起一个唯一的服务单元名称

          adapter.add(tempServer, Ice.Util.stringToIdentity("tempAdapter"));

          //激活适配器,这样做的好处是等所有资源都到位在触发

          adapter.activate();

          //在服务退出之前一直保持对请求的监听

          ic.waitForShutdown();

          //用来结束运行时

          if(ic != null){

              ic.destroy();

          }

     }

}

5.编写客户端

 

import com.ice.temp.temp.tempDemoPrx;

import com.ice.temp.temp.tempDemoPrxHelper;

importIce.Communicator;

import Ice.ObjectPrx;

public class TestClient {

     public static void main(String[] args) {

          //初始化配置信息,建立起连接

          Communicator ic = Ice.Util.initialize(args);

          //传入远程地址的服务单元名称,端口,协议

          ObjectPrx stringToProxy = ic.stringToProxy("tempAdapter:tcp -h 127.0.0.1 -p 10000");

          //通过向下转换获取远程的GoTalking接口,

          //同时检测根据传入参数得到的服务单元是否是GoTalking接口的代理,不是的话返回null;

          tempDemoPrx checkedCast = tempDemoPrxHelper.checkedCast(stringToProxy);

          

          String sayTemp = checkedCast.sayTemp("你好");

          System.out.println("客户端收到的响应:"+sayTemp);

          

     }

}

最后分别启动测试即可。

   

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值