2014-01-30 41 views
-1

我目前正在使用欢乐连接3.0.1和生物仪器的项目。通过使用ActiveMQ代理,我将带有Mirth Connect的JMS消息发送到此仪器。我的仪器上的JMS接收器是一个特定的java连接器,他期望格式良好的JMS头具有一些特定的和必需的字段。修改JMS标题与欢乐连接

我想知道是否有可能修改由Mirth Connect发送的JMS头?我没有找到任何有关它的信息。

例如,我想在我的JMS标题中添加一个字段并添加一个值。

如果这是不可能的,你知道我是否可以使用ActiveMQ做到这一点?也许,我必须编写自己的ActiveMQ库?

谢谢你的帮助。

回答

1

按照JMS规范

Property values are set prior to sending a message. When a client receives a 
message, its properties are in read-only mode. If a client attempts to set 
properties at this point, a MessageNotWriteableException is thrown. 

所以,如果你想设置的任何属性,那么你必须调用消息clearProperties(),然后设置自己的值。

+0

您能否介绍一下'clearProperties()'方法的用法? –

+0

收到消息后,您必须在该消息上调用'clearProperties()',然后才能设置它的某些属性。[docs](http://docs.oracle.com/cd/E17802_01/products/products/jms/ javadoc-102a/javax/jms/Message.html#clearProperties%28%29) –

+0

我需要在发送消息之前清除属性,而不是在仪器接收到时 –