相关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);
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);
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-----------------------------");
}
}
}