Tibco请求、监听、回复 Demo

相关Jar依赖

Tibco相关Jar包

Tibco请求、响应参数接收

import com.tibco.tibrv.Tibrv;
import com.tibco.tibrv.TibrvMsg;
import com.tibco.tibrv.TibrvRvdTransport;

public class rvSend{

    public static void main(String[] args) throws Exception{
        String service = "";
        String network = "";
        String daemons = "";
        String subject = "";
        String xmlData = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><Transaction TxName='test001' Type='Event' MessageKey='0000'><Job JobID='test001'/></Transaction>";
        Tibrv.open(Tibrv.IMPL_SELECT);
        TibrvRvdTransport transport = new TibrvRvdTransport(service, network, daemons);
        TibrvMsg msg = new TibrvMsg();
        msg.setSendSubject(subject);
        msg.update("Data", xmlData);
        TibrvMsg reply = transport.sendRequest(msg, 100*1000);  //wait 100 seconds for reply
        System.out.println(reply);
        Tibrv.close();
    }
}

Tibco监听、消息回复

import com.tibco.tibrv.*;

@Slf4j
@Component
@RequiredArgsConstructor
public class TibcoRvListener {

    @EventListener
    public void startListener(ApplicationReadyEvent event) throws TibrvException, InterruptedException {
        String service = "_service";
        String network = "_network";
        String daemons = "_daemons";
        String subject = "_subject";
        Tibrv.open(Tibrv.IMPL_NATIVE);//打开本机上的rv进程
        TibrvRvdTransport transport = new TibrvRvdTransport(service, network, daemons);
        TibrvQueue queue = new TibrvQueue();
        TibrvListener listener = new TibrvListener(queue, new TibcoRvMessageHandler(), transport, subject, null);
        try {
            while (true){
                queue.dispatch();
            }
        }catch (Exception e){
            log.error("Tibco监听异常: " + e.getMessage());
        }
    }

    private class TibcoRvMessageHandler implements TibrvMsgCallback {
        @Override
        public void onMsg(TibrvListener tibrvListener, TibrvMsg tibrvMsg) {
            String xmlData = (String) tibrvMsg.get("Data");
            log.info("xmlData : " + xmlData);
						
			//业务逻辑......
			
			log.info("----------------------------- 消息回复 Start-----------------------------");
        	String service = "_service";
        	String network = "_network";
        	String daemons = "_daemons";
        	TibrvRvdTransport transport = new TibrvRvdTransport(service, network, daemons);
        	TibrvMsg msg = new TibrvMsg();
        	msg.update("Data", xmlData);
        	transport.sendReply(msg,tibrvMsg);
        	transport.destroy();
        	log.info("----------------------------- 消息回复 End-----------------------------");

        }
    }
}
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值