La idea sería crearte un nuevo proceso (un hilo de ejecución o Thread) en tu aplicación, y que contenga un bucle que se ejecute cada x segundos y compruebe si hay mensajes nuevos.
El Thread lo crearía al arrancar la aplicación por primera vez. Para ello, si no recuerdo mal tienes que crearte una clase que extienda de la clase abstracta ContextListener. En ella tendrás que definirte dos métodos, uno que se ejecutará al iniciar la aplicación (en el que crearías el Thread), y otro que se ejecutará al terminar la aplicación (en el que deberías terminar su ejecución). Además esta clase debes especificarla en tu fichero web.xml con un tag <listener>.
Puedes encontrar más información de todo esto en
http://java.programacion.net/
Saludos