知识大全 JAVA调用ICE接口实践
Posted 知
篇首语:读书是学习,摘抄是整理,写作是创造。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 JAVA调用ICE接口实践相关的知识,希望对你有一定的参考价值。
JAVA调用ICE接口实践 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
最近刚开发了一个需求 使用ICE调用服务器端的接口 过程如下
首先是准备环境 通过下载得到安装包 这次我用的是 版本(目前最新是 )
接着使用bin目录下slice java将得到的ice文件转化为Java类 命令为slice java **** ice
将lib目录下Ice jar引入Java工程内 开始编写客户端代码
Java代码
public abstract class AbstractIceAgent
protected Logger logger = LoggerFactory getLogger(AbstractIceAgent class getName());
private static final int DEFAULT_TIME_OUT = ;
String identId;
public AbstractIceAgent()
public AbstractIceAgent(String identId)
this identId = identId;
public String getIdentId()
return identId;
public void setIdentId(String identId)
this identId = identId;
public Object executeProxy(Object bean)
Communicator municator = Ice Util initialize();
Object returnValue = null;
try
ObjectPrx objPrx = municator stringToProxy(identId);
objPrx ice_timeout(DEFAULT_TIME_OUT);
returnValue = methodAction(objPrx bean);
catch (Exception e)
logger error( execute proxy cause error: + e);
throw new RuntimeException(e);
finally
if (municator != null)
try
municator destroy();
municator = null;
catch (Exception e)
// do nothing
return returnValue;
/**
* ice接口方法的定义
*
* @param base
*/
abstract Object methodAction(ObjectPrx base Object bean);
这是一个虚基类 子类只需覆蓋methodAction即可
Java代码
package alibaba china brmms remind;
public interface AIMFriendBO
int[] isFriend(String memberId String[] friendIds);
这是本次需要实现的接口
Java代码
public class AIMFriendAgent extends AbstractIceAgent implements AIMFriendBO
// private static final String ICE_INTERFACE = ADPushAgentId:default h p ;
// private static BrmmsRemindAgent brmmsIceAgent = new BrmmsRemindAgent(ICE_INTERFACE);
protected Logger logger = LoggerFactory getLogger(AIMFriendAgent class getName());
private String strCaller;
private String strServiceType;
public void setStrCaller(String strCaller)
this strCaller = strCaller;
public void setStrServiceType(String strServiceType)
this strServiceType = strServiceType;
public AIMFriendAgent()
;
public AIMFriendAgent(String identId)
super(identId);
@Override
Object methodAction(ObjectPrx base Object bean)
WWContactInterfacePrx ctWebInterfacePrx = WWContactInterfacePrxHelper checkedCast(base);
AliIMContact contact = (AliIMContact) bean;
IntSeqHolder isFriendSeq=new IntSeqHolder();
StringHolder retMsgHolder=new StringHolder();
int result = ctWebInterfacePrx IsFriend(strCaller strServiceType contact getMemberId() contact getContactIds() isFriendSeq retMsgHolder);
// means ok normally
if(result== )
return isFriendSeq value;
else
logger error( check contact error in AIMFriendAgent cause : + retMsgHolder value);
return null;
public int[] isFriend(String memberId String[] friendIds)
if (memberId == null||friendIds==null)
throw new RuntimeException( ice contact relation check parameters are empty );
int[] returnValue=(int[]) this executeProxy(new AliIMContact(memberId friendIds));
return returnValue;
cha138/Article/program/Java/hx/201311/26695
相关参考
可能大家都懂这些作为不懂的我猜测了一下这个interface的意义他就是为了后面调用的时候再调用的方法中调用实现类中interface中存在的内容好绕口啊写个例子留作以后看吧payphp复制代码代
天气预报调用代码 最近要做一个网站需要用到天气预报本来是想找到API自己写一个自己的天气预报小程序的没有成功只好去找现成的代码调用经过测试我找到了几种现在还可以使用的调用代码由于大部分效果使用的
Java中调用本地代码 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! Java中调用dll中本地
选择Java接口还是抽象类 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 选择Java接口
Java远程方法调用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JavaRemoteMeth
知识大全 在java的main方法中调用java和javac
调用java Runtimehello=RuntimegetRuntime();//Runtime构造函数私有只能通过这种方式获得实例 helloexec(cmd /cstartJa
Java多线程实现异步调用 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在JAVA平台实现异步
PHP如何调用JAVA类库 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! JAVA是个非常强大的
Java远程方法调用(2) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 传递属性
Java远程方法调用(1) 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 概述 Jav