Diferencia entre revisiones de «JMS con Spring Roo»
| Línea 3: | Línea 3: | ||
Entonces, tomamos el [[Ejemplo de proyecto web ABM con Spring Roo]] y hacemos que una vez creado un nuevo pedido de pizza, se envíe un mensaje a la consola del servidor. Esto último de manera asincrónica. | Entonces, tomamos el [[Ejemplo de proyecto web ABM con Spring Roo]] y hacemos que una vez creado un nuevo pedido de pizza, se envíe un mensaje a la consola del servidor. Esto último de manera asincrónica. | ||
| − | == Alternativa 1: Modificar el aspecto de la entidad == | + | == Alternativa 1: Modificar el aspecto de la entidad "Pedido"== |
| + | |||
| + | * Comentamos la anotacion en el aspecto de la entidad: | ||
| + | |||
| + | <code> | ||
| + | privileged aspect PedidoController_Roo_Controller { | ||
| + | |||
| + | //@RequestMapping(value = "/pedido", method = RequestMethod.POST) | ||
| + | public String PedidoController.create | ||
| + | </code> | ||
| + | |||
| + | * Agregamos un método "crear" en el Controller para crear el pedido y donde vamos a inyectar el uso de mensajeria para mandar el aviso: | ||
| + | |||
| + | <code> | ||
| + | public class PedidoController { | ||
| + | @RequestMapping(value = "/pedido", method = RequestMethod.POST) | ||
| + | public String crear(@Valid Pedido pedido, BindingResult result, ModelMap modelMap) { | ||
| + | System.out.println("Estoy en PedidoController - crear"); | ||
| + | String resultado = create(pedido, result, modelMap); | ||
| + | return resultado; | ||
| + | } | ||
| + | } | ||
| + | </code> | ||
| + | |||
| + | 4) jms setup --provider ACTIVEMQ_IN_MEMORY --destinationType QUEUE --destinationName dosIdeasQueue | ||
| + | Created SRC_MAIN_RESOURCES\META-INF\spring\applicationContext-jms.xml | ||
| + | Managed SRC_MAIN_RESOURCES\META-INF\spring\applicationContext-jms.xml | ||
| + | Managed ROOT\pom.xml | ||
| + | Managed ROOT\pom.xml | ||
| + | Managed ROOT\pom.xml | ||
| + | Managed ROOT\pom.xml | ||
| + | Managed ROOT\pom.xml | ||
| + | Managed ROOT\pom.xml | ||
| + | |||
| + | 5) quitamos version en applicationContext-jms.xml: | ||
| + | |||
| + | http://activemq.apache.org/schema/core/activemq-core.xsd | ||
| + | |||
| + | Tips Eclipse: http://www.bigsoft.co.uk/blog/index.php/2009/02/01/invalid-activemq-schema-name-space | ||
| + | |||
| + | 6) field jms template --class com.dosideas.roo.oracle.web.PedidoController --fieldName jmsTemplate | ||
| + | Managed SRC_MAIN_JAVA\com\dosideas\roo\oracle\web\PedidoController.java | ||
| + | Managed SRC_MAIN_JAVA\com\dosideas\roo\oracle\web\PedidoController.java | ||
| + | Managed SRC_MAIN_JAVA\com\dosideas\roo\oracle\web\PedidoController_Roo_Controller.aj | ||
| + | |||
| + | 7) Ojo con el aspecto de Pedido, le agrega la anotación y hay que volver a comentarla: | ||
| + | |||
| + | //@RequestMapping(value = "/pedido", method = RequestMethod.POST) | ||
| + | |||
| + | 8) agregamos el listener: | ||
| + | |||
| + | jms listener class --class com.dosideas.roo.oracle.jms.JmsQueueListener --destinationName dosIdeasQueue | ||
| + | |||
| + | --destinationType QUEUE | ||
| + | Created SRC_MAIN_JAVA\com\dosideas\roo\oracle\jms | ||
| + | Created SRC_MAIN_JAVA\com\dosideas\roo\oracle\jms\JmsQueueListener.java | ||
| + | Managed SRC_MAIN_RESOURCES\META-INF\spring\applicationContext-jms.xml | ||
| + | |||
| + | |||
| + | 9) ver cambios | ||
| + | Updated: | ||
| + | |||
| + | D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\web\Pedido | ||
| + | |||
| + | Controller_Roo_Controller.aj | ||
| + | Updated: | ||
| + | |||
| + | D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\web\Pedido | ||
| + | |||
| + | Controller.java | ||
| + | Updated: | ||
| + | |||
| + | D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\domain\Ped | ||
| + | |||
| + | ido.java | ||
| + | Added: | ||
| + | |||
| + | D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\business | ||
| + | Added: | ||
| + | |||
| + | D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\business\J | ||
| + | |||
| + | msQueueSenderBoImpl.java | ||
| + | |||
== Alternativa 2: Utilizar una anotacion == | == Alternativa 2: Utilizar una anotacion == | ||
| − | |||
| − | |||
== Ver tambien == | == Ver tambien == | ||
Revisión del 15:47 28 jul 2010
Con el uso de JMS podemos hacer asincrónica la ocurrencia de un determinado evento.
Entonces, tomamos el Ejemplo de proyecto web ABM con Spring Roo y hacemos que una vez creado un nuevo pedido de pizza, se envíe un mensaje a la consola del servidor. Esto último de manera asincrónica.
Alternativa 1: Modificar el aspecto de la entidad "Pedido"
- Comentamos la anotacion en el aspecto de la entidad:
privileged aspect PedidoController_Roo_Controller {
//@RequestMapping(value = "/pedido", method = RequestMethod.POST)
public String PedidoController.create
- Agregamos un método "crear" en el Controller para crear el pedido y donde vamos a inyectar el uso de mensajeria para mandar el aviso:
public class PedidoController {
@RequestMapping(value = "/pedido", method = RequestMethod.POST)
public String crear(@Valid Pedido pedido, BindingResult result, ModelMap modelMap) {
System.out.println("Estoy en PedidoController - crear");
String resultado = create(pedido, result, modelMap);
return resultado;
}
}
4) jms setup --provider ACTIVEMQ_IN_MEMORY --destinationType QUEUE --destinationName dosIdeasQueue Created SRC_MAIN_RESOURCES\META-INF\spring\applicationContext-jms.xml Managed SRC_MAIN_RESOURCES\META-INF\spring\applicationContext-jms.xml Managed ROOT\pom.xml Managed ROOT\pom.xml Managed ROOT\pom.xml Managed ROOT\pom.xml Managed ROOT\pom.xml Managed ROOT\pom.xml
5) quitamos version en applicationContext-jms.xml:
http://activemq.apache.org/schema/core/activemq-core.xsd
Tips Eclipse: http://www.bigsoft.co.uk/blog/index.php/2009/02/01/invalid-activemq-schema-name-space
6) field jms template --class com.dosideas.roo.oracle.web.PedidoController --fieldName jmsTemplate Managed SRC_MAIN_JAVA\com\dosideas\roo\oracle\web\PedidoController.java Managed SRC_MAIN_JAVA\com\dosideas\roo\oracle\web\PedidoController.java Managed SRC_MAIN_JAVA\com\dosideas\roo\oracle\web\PedidoController_Roo_Controller.aj
7) Ojo con el aspecto de Pedido, le agrega la anotación y hay que volver a comentarla:
//@RequestMapping(value = "/pedido", method = RequestMethod.POST)
8) agregamos el listener:
jms listener class --class com.dosideas.roo.oracle.jms.JmsQueueListener --destinationName dosIdeasQueue
--destinationType QUEUE Created SRC_MAIN_JAVA\com\dosideas\roo\oracle\jms Created SRC_MAIN_JAVA\com\dosideas\roo\oracle\jms\JmsQueueListener.java Managed SRC_MAIN_RESOURCES\META-INF\spring\applicationContext-jms.xml
9) ver cambios
Updated:
D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\web\Pedido
Controller_Roo_Controller.aj Updated:
D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\web\Pedido
Controller.java Updated:
D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\domain\Ped
ido.java Added:
D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\business Added:
D:\cblatter\Proyectos\SpringRoo\workspaceSTS232\spring-roo-demo\src\main\java\com\dosideas\roo\oracle\business\J
msQueueSenderBoImpl.java