Contribuye

JMS es una API creada por Sun Microsystems para el uso de colas de mensajes. Es una librería estándar de mensajería que permite crear, enviar, recibir y leer mensajes de manera síncrona y asíncrona.1

Esta API se puede implementar en muchas aplicaciones Java pero ¿como la podemos integrar en una aplicación creada con Grails?

Bueno este artículo está dedicado para implementarla ocupando el plugin de JMS 1.2 y activemq 5.3.0. Para empezar asumiremos que ya se tiene un proyecto creado en grails y agregaremos la siguiente dependencia dentro del archivo BuildConfig.groovy en el apartado correspondiente:

[sourcecode language=”groovy”]
compile ‘org.apache.activemq:activemq-core:5.3.0′
[/sourcecode]

Después, dentro del mismo archivo agregaremos el plugin de JMS:

[sourcecode language=”groovy”]
compile “:jms:1.2”
[/sourcecode]

Una vez que grails descargue las dependencias necesarias y los plugins necesarios vamos a proceder a configurar el jmsConnectionFactory dentro del resources.groovy

[sourcecode language=”groovy”]

beans = {
jmsConnectionFactory(org.apache.activemq.ActiveMQConnectionFactory) {
brokerURL = ‘vm://localhost’
}
}

[/sourcecode]

Una vez que tenemos esto solamente debemos hacer referencia en el lugar de nuestra elección de la siguiente manera:

[sourcecode language=”groovy”]
def jmsService
[/sourcecode]

Y para enviar el mensaje hacemos lo siguiente:

[sourcecode language=”groovy”]
jmsService.send(queue:’queueName’, params)
[/sourcecode]

Y el método que queremos que responda a la petición lo anotamos con @Queue

[sourcecode language=”groovy”]
@Queue(name=’queueName’)
def doSomething(params){
// Procesar los datos
}
[/sourcecode]

Si bien esta es una manera sencilla de hacerlo no es la mejor para ambientes de producción ya que falta algo de tunning sin embargo el propósito de este artículo es que el desarrollador vea que de una manera sencilla se pueden hacer grandes cosas.

Saludos y gracias por leer mi primer post.

1 [http://es.wikipedia.org/wiki/Java_Message_Service][1]

http://gpc.github.com/grails-jms/docs/manual/index.html

http://leanjavaengineering.wordpress.com/2011/10/12/using-jms-in-grails/

[1]: http://es.wikipedia.org/wiki/Java_Message_Service

comments powered by Disqus