1、Ice SDK的下载
这里我选择的是最新的3.4.0.,各位可以根据需要进行最新的版本下载。
下载地址为:http://download.zeroc.com/Ice/3.6/Ice-3.4.0.msi
2、ICE Eclipse SDK的配置
3、转化成Ice项目
右击工程Ice,选择Ice Builder,最后选择Add Ice Builder
4、配置Ice 服务端
[["java:package:com.test.service"]] // 定义java包名
module demo
{
interface Hello
{
string execute(string command);
};
};
保存,会自动在generated文件夹下面自动生成IceJava端代码
5、编写Ice的服务端,继承自_helloDisp.java
package com.test.service;
import com.test.service.demo._HelloDisp;
import Ice.Current;
public class IceService extends _HelloDisp{
@Override
public String execute(String command, Current __current) {
// TODO Auto-generated method stub
return null;
}
}
6、新建服务端
package com.test.service;
public class Server {
public static void main(String[] args) {
int status = 0;
Ice.Communicator ic = null;
try{
System.out.println("Server starting...");
ic = Ice.Util.initialize(args);
Ice.ObjectAdapter adapter = ic.createObjectAdapterWithEndpoints("HelloAdapter", "default -p 12000");
Ice.Object object = new IceService();
adapter.add(object, ic.stringToIdentity("hello"));
adapter.activate();
System.out.println("Server start success.");
ic.waitForShutdown();
}catch(Ice.LocalException e){
e.printStackTrace();
status = 1;
}catch(Exception e){
System.err.println(e.getMessage());
status = 1;
}
if(ic != null){
try{
ic.destroy();
}catch(Exception e){
System.err.println(e.getMessage());
status = 1;
}
}
System.exit(status);
}
}
7、新建客户端
package com.test.service;
import com.test.service.demo.HelloPrx;
import com.test.service.demo.HelloPrxHelper;
public class Client {
public static void main(String[] args) {
int status = 0;
Ice.Communicator ic = null;
try{
ic = Ice.Util.initialize(args);
Ice.ObjectPrx base = ic.stringToProxy("hello:default -p 12000");
HelloPrx service = HelloPrxHelper.checkedCast(base);
if(service == null){
throw new Error("Invalid proxy");
}
String s = service.execute("命令");
System.out.println(">>"+s);
}catch(Ice.LocalException e){
e.printStackTrace();
status = 1;
}catch(Exception e){
System.err.println(e.getMessage());
status = 1;
}
if(ic != null){
try{
ic.destroy();
}catch(Exception e){
System.err.println(e.getMessage());
status = 1;
}
}
System.exit(status);
}
}
6、编译运行
a、运行Server
b、运行客户端
c、服务端执行
d、客户端得到反馈结果