`

TibListener

 
阅读更多

package listener;

import com.tibco.tibrv.Tibrv;
import com.tibco.tibrv.TibrvException;
import com.tibco.tibrv.TibrvListener;
import com.tibco.tibrv.TibrvMsg;
import com.tibco.tibrv.TibrvMsgCallback;
import com.tibco.tibrv.TibrvRvdTransport;

import constants.Constants;

public class TibListener implements TibrvMsgCallback, Constants
{
  private TibrvRvdTransport transport = null;

  //初始化TibrvListener
  public TibListener()
  {
    try
    {
      Tibrv.open(Tibrv.IMPL_NATIVE);
      transport = new TibrvRvdTransport(tibcoService, tibcoNetwork, tibcoDaemon);
      new TibrvListener(Tibrv.defaultQueue(), this, transport, tibcoSubject, null);
    }
    catch (TibrvException e)
    {
      e.printStackTrace();
    }
  }

  //监听
  public void listen()
  {
    while (true)
    {
      try
      {
        Tibrv.defaultQueue().dispatch();
      }
      catch (TibrvException ex)
      {
        ex.printStackTrace();
      }
      catch (InterruptedException ex)
      {
        ex.printStackTrace();
      }
    }
  }

  //回调方法,监听到指定Subject时触发
  public void onMsg(TibrvListener listener, TibrvMsg msg)
  {
    if (msg != null)
    {
      String receivedMsg;
      try
      {
        receivedMsg = (String) msg.get("msg");
        System.out.println(receivedMsg);
      }
      catch (TibrvException e)
      {
        e.printStackTrace();
      }

    }
  }

  public static void main(String[] args)
  {
    TibListener tibListener = new TibListener();
    tibListener.listen();
  }

}

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics