Versiones comparadas

Clave

  • Se ha añadido esta línea.
  • Se ha eliminado esta línea.
  • El formato se ha cambiado.

...

Bloque de código
languagejava
@MessageDriven(activationConfig = {
    @ActivationConfigProperty(
        propertyName = "destinationType",
        propertyValue = "javax.jms.Topic"
    ),
    @ActivationConfigProperty(
        propertyName = "destination",
        propertyValue = "topic/pruebaPushTopic"
    )
})
@Name("pushReceiver")
public class pushReceiver implements MessageListener {

   @Logger
   private Log log;
  
   @Override
   public void onMessage(Message jmsMessage) {
      try {
         String message = jmsMessage.getStringProperty("message");
         Events.instance().raiseEvent(new PushEvent(message));
      } catch (JMSException ex) {
         log.error("Problem sending push event message.", ex);
      } 
   }

}

...


Ahora, usamos PushManager#fireEvent() para lanzar eventos JMS desde un nodo del cluster, que permite después lanzar los eventos de JBoss Seam en todos los nodos el cluster y asi enviar el mensaje al canal push correspondiente:

Bloque de código
languagejava
@In
private PushManager pushManager;

public void onSomeEntityChange(Entity entity) {
    pushManager.fireEvent(new PushEvent(entity.getSomeProperty()));
}


Más información sobre JMS:


Sugerencias de Diseño e