知识大全 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

相关参考

知识大全 领悟php接口中interface存在的意义

  可能大家都懂这些作为不懂的我猜测了一下这个interface的意义他就是为了后面调用的时候再调用的方法中调用实现类中interface中存在的内容好绕口啊写个例子留作以后看吧payphp复制代码代

知识大全 java调用天气预报调用代码

  天气预报调用代码  最近要做一个网站需要用到天气预报本来是想找到API自己写一个自己的天气预报小程序的没有成功只好去找现成的代码调用经过测试我找到了几种现在还可以使用的调用代码由于大部分效果使用的

知识大全 Java中调用本地代码

Java中调用本地代码  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Java中调用dll中本地

知识大全 选择Java接口还是抽象类

选择Java接口还是抽象类  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!     选择Java接口

知识大全 Java远程方法调用

Java远程方法调用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JavaRemoteMeth

知识大全 在java的main方法中调用java和javac

  调用java  Runtimehello=RuntimegetRuntime();//Runtime构造函数私有只能通过这种方式获得实例  helloexec(cmd /cstartJa

知识大全 Java多线程实现异步调用

Java多线程实现异步调用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在JAVA平台实现异步

知识大全 PHP如何调用JAVA 类库

PHP如何调用JAVA类库  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  JAVA是个非常强大的

知识大全 Java远程方法调用(2)

Java远程方法调用(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  传递属性       

知识大全 Java远程方法调用(1)

Java远程方法调用(1)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  概述      Jav