RESTEasyMOMInterface

The RESTFul Interface for Queues

 

send

POST /queues/{queue-name}?persistent=[true|false]&priority=[0-9+]&timeToLive=[0-9+]

 

Response is 204 NO-CONTENT on success.  All query parameters optional

 

 

Receive and consume a message

POST /queues/{queue-name}/head?wait=[0-9+]

 

Wait is optional.  Defaults to wait forever.

 

 

 

Browse

GET /queues/{queue-name}/browser

 

Returns HTML document with links to message you can view.

 

Dedicated Queue Receivers

Dedicated queues receivers are JMS message consumers attached to a specific session.

 

Create a dedicated receiver that you can pull from.

 

PUT /queues/{queue-name}/receivers/{receiver-id}

If you pass an ACCEPT header this will create a JMS selector that filters message for only a specific media type.  So, if you pass an ACCEPT header of 'application/xml' this receiver will only get message of CONTENT-TYPE 'application/xml'

 

 

Delete a dedicated receiver

DELETE /queues/{queue-name}/receivers/{receiver-id} 

 

Get the current message that is in the receiver's buffer.  This does not consume/acknowledge the message

 

GET /queues/{queue-name}/receivers/{receiver-id}/head?wait=[0-9+]

 

Acknowledge the current message that is in the receiver buffer.

 

DELETE /queues/{queue-name}/receivers/{receiver-id}/head

 

FYI, this is idempotent still!

 

get and acknowledge from the receiver at the same time

POST /queues/{queue-name}/receivers/{reciever-id}/head

 

 

 

Queue Message listeners

You can register a URI to post to when a message is sent to the queue.  This registers a MessageListener with the queue.  When the message is received, on the server, it send the message to the registered URI.

 

Create a message listener

 

PUT /queues/{queue-name}/listeners/{listener-id}

You must send a string that is the URI you want to send the message to.  The content-type can be anything, "text/plain" or whatever.

 

If you pass an ACCEPT header this will create a JMS selector that filters message for only a specific media type.  So, if you pass an ACCEPT header of 'application/xml' this receiver will only get message of CONTENT-TYPE 'application/xml'

 

Delete the listener

DELETE /queues/{queue-name}/receivers/{receiver-id}