Le protocole Comet permet de gérer le Push sur HTTP, plus généralement les communications client-serveur asynchrone. Bayeux standardise une manière d’utiliser cela avec des messages JSON dans une appli ajax.

Grizzly https://grizzly.dev.java.net/ est une implémentation plutôt liée à Glassfish, mais aussi stand alone :
Présentation : http://jfarcand.wordpress.com/2008/11/30/writing-a-twitter-like-application-using-grizzly-comet-part-1-the-servlet/

L’implémentation dans les serveurs d’application repose sur les NIO, plus efficaces : http://gfx.developpez.com/tutoriel/java/nio/ et qui permettent de gérer en async plusieurs sockets pour un thread.

Dans Jboss 4.2.0, on peut utiliser l’implémentation de Tomcat 6 :
http://community.jboss.org/thread/39142
Dans JBoss 5.1, c’est stable sur une implémentation native org.jboss.web.comet.CometProcessor :
http://community.jboss.org/thread/148421
Entre les deux ?

La spécification servlet 3.0 async va standardiser tout cela :
http://docs.jboss.org/jbossweb/latest/aio.html
http://www.javaworld.com/javaworld/jw-02-2009/jw-02-servlet3.html?page=3

Atmosphere est un framework d’implémentation comet simplifié qui marchera sans servlet 3.0 mais l’utilisera si disponible :
http://jfarcand.wordpress.com/2009/11/06/servlet-3-0-asynchronous-api-or-atmosphere-easy-decision/
Supporte Websocket aussi : http://jfarcand.wordpress.com/2010/06/15/using-atmospheres-jquery-plug-in-to-build-applicationsupporting-both-websocket-and-comet/

Une présentation http://blog.octo.com/apres-ajax-le-reverse-ajax-et-le-grizzly/

A l’inverse, un client asynchrone java :
http://code.ning.com/2010/03/introducing-nings-asynchronous-http-client-library/
http://jfarcand.wordpress.com/2010/03/04/new-open-source-project-alert-a-new-asynchronous-http-client-library/