Comme le dit James Strachan - http://activemq.apache.org/ajax.html est un idéal hors-the-box solution pour ton problème.
Si vous souhaitez toujours créer une telle solution manuellement, vous pouvez simplement créer une connexion JMS dans votre servlet Ajax (connexion par requête). Envisagez d'utiliser le modèle Spring JMS pour cette raison (http://static.springsource.org/spring/docs/2.5.x/reference/jms.html). Ensuite, recevez simplement le message dans la méthode Servlet doGet/doPost. Considérez la valeur de délai d'attente faible pour recevoir dans ce cas. Une telle solution fonctionnera pour les files d'attente et les sujets durables.
Pour les rubriques non durables, tenez compte de l'écoute de message externe. Spring MessageListenerContainer
est un excellent outil à cette fin:
<bean class="org.springframework.jms.listener.DefaultMessageListenerContainer
<property name="connectionFactory" ref="jmsFactory"/>
<property name="destination" ref="myTopic" />
<property name="messageListener" ref="lastTenUpdatesCache" />
</bean>
Bean lastTenUpdatesCache
sera un haricot singleton la mise en œuvre MesssageListener
. Ce bean serait responsable de la mise en cache des dix derniers messages (en le plaçant simplement dans une liste java.util). Il sera injecté dans votre servlet Ajax donc dans votre méthode doGet/doPost, vous pouvez lui poser des questions sur les 10 derniers messages envoyés au sujet.
Merci jodonnell .. Je n'ai jamais écrit de JMX MBean ou EJB Stateful Session, mais après une rapide recherche google, je pense que c'est le bon chemin à regarder vers le bas. Merci pour l'aide. –