Java中的WebSphere MQ Content Enricher

时间:2014-02-12 21:11:14

标签: java jms messaging ibm-mq

您将如何使用Java在WebSphere MQ中实现Content Enricher?

鉴于队列中提供了现有的输入消息,以下是我的一些想法,其中没有一个让我满意:

  1. 深度克隆邮件对象。 Here解释了它是如何完成的,但我也找不到 javax.jms.Message类的clone()serialize()方法。
  2. 获取原始邮件,使用setXXXProperty()设置其他属性并发送 向前。这会抛出一个异常,表明该消息是 只读的。
  3. 创建新消息,迭代属性 现有消息并将其设置为新消息。 getPropertyNames()可以帮助做到这一点,但它没有说明 属性类型,因此这些信息将丢失。

1 个答案:

答案 0 :(得分:1)

简而言之,IBM集成总线可以在消息流中完成...但是,我还要提供WMQ Java答案:

接收到的消息对象可以被修改并发送回去...您需要做的就是从该消息中读取所需的所有内容到某个java对象。例如,您可以使用Map for Properties。然后调用clearProperties(),然后设置修改后的属性。调用clearProperties()(http://docs.oracle.com/javaee/5/api/javax/jms/Message.html#clearProperties%28%29

后,readonly的问题就消失了

所以(2)和(3)的混合可以帮助解决问题。