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);
} } |
最后分别启动测试即可。