How to send message headers (properties) for a message in active mq web console localhost:8161?

Viewed 11775

I searched a lot in web, couldn't find any answers.

enter image description here

5 Answers

Web console does not allow to send custom jms header or properties.

So, you need to use the rest api:

http://activemq.apache.org/rest.html

The following curl worked for me:

  • activemq 5.14.x
  • queue name = avenger_tasks
  • body message = {'a': 'b'}
  • jms header name = JMSCorrelationID
  • jms header value = 9999
    curl -H 'Authorization: Basic YWabcdefg==' \
    -d "body={'a': 'b'}"  \
    -d "JMSCorrelationID=9999" \
    -d "JMSReplyTo=NickFury"   \
    -d "SomeProperty=SomeValue"   \
    http://localhost:8161/api/message/avenger_tasks?type=queue

Or with user and password

    curl -u admin:admin \
    -d "body={'a': 'b'}"  \
    -d "JMSCorrelationID=9999" \
    -d "JMSReplyTo=NickFury"   \
    -d "SomeProperty=SomeValue"   \
    http://localhost:8161/api/message/avenger_tasks?type=queue

A "hacky way" is to use your browser's developer tools to insert a hidden field in the "sendMessage.action". The name of the new hidden field should be the name of the custom header that you want to send.

For example, in Chrome,

  1. Right-click the section header named "Send a JMS Message" and select "Inspect" for the menu that pops up
  2. You will see the <form> element right below the selected element
  3. Click on the 3 dots to the left of the first <input type="hidden".../> element and duplicate it

enter image description here

  1. On the duplicate <input type="hidden".../> change the name to contain the value of your customer header name and in the value attribute set the desired value of the header

enter image description here

  1. Now when you click the "Send" button, the custom header will be part of the message
Related