【问题标题】:RabbitMQ AMQP messages and TIBCO 5.10RabbitMQ AMQP 消息和 TIBCO 5.10
【发布时间】:2018-07-24 16:01:04
【问题描述】:

我们使用的是 TIBCO 5,需要消费和发布消息到 RabbitMQ AMQP 消息。

据我研究和测试,TIBCO 5 中不支持 AMQP 消息,但是 TIBCO 6 中支持但升级不是一个选项。

我尝试将 rabbit mq java client jar 放在 lib 目录中,并使用它连接到 Rabbit mq 的 JMS 托盘,但在读取消息时崩溃。

我想知道其他人是否遇到过这个问题,或者他们如何使用 TIBCO 5 解决这个问题。

一个自定义的 Java 启动器怎么样?

【问题讨论】:

    标签: rabbitmq amqp tibco tibco-business-works


    【解决方案1】:

    应该可以通过自定义的 java 启动器来实现,Rabbitmq java 代码是直截了当的。但首先我会调查为什么 jms 驱动程序崩溃,因为这是最可行的方法。你调查过错误吗?最有可能的类版本或依赖错误

    【讨论】:

    • 类等没有问题,因为它建立了连接,但当消息到达队列时失败,抱怨某些标头,所以我的猜测是 AMQP 消息格式不受支持或无法处理等。
    【解决方案2】:

    我回答了我自己的问题,但最后我们实际上实现了自己的 Process starter/Java 事件源。

    Java 事件源托盘使用起来非常简单,下面是启动代码的样子

    /**
     *
     * @param processName sampleInputParam
     * @throws Exception exception
     */
    public void initProcess(final String processName) throws Exception {
        this.processName = processName;
        init();
    }
    
    @Override
    public void init() throws Exception {
        LOGGER.info("[ProcessStarter] Initializing " + processName + " Proces Starter");
        //Some init code
        LOGGER.info("[ProcessStarter] Successfully Initialized Proces Starter");
    } 
    

    以下是 tibco 的调用方式

    Java event source pallet

    事件源的输出是一个java对象,我们使用java方法activity将其转换为字符串

    public String getMessageBodyAsString(final Object message) {
        final MessageDataType messageDataType = (MessageDataType) message;
        return messageDataType.toString();
    }
    

    如果有人感兴趣,请在 Tibco java event source 记录它

    【讨论】:

      猜你喜欢
      • 2013-12-30
      • 1970-01-01
      • 1970-01-01
      • 2023-03-16
      • 2018-12-11
      • 1970-01-01
      • 1970-01-01
      • 2013-02-15
      • 2012-09-09
      相关资源
      最近更新 更多