Sometimes I come across developers who think that if you want to use messaging in Java then you get yourself a J2EE appserver, crack open a few MDBs...
You can certainly do that but there are also numerous standalone JMS implementations that can fit the bill - sometimes better than the appserver approach.
Carlos has assembled a useful list of Open Source implementations. The list includes those that are appserver based e.g. JBoss MQ.
As messaging move center stage as the key enabling tech of asynch WS, I suspect the JMS API will become as familiar to people as the JDBC/ODBC APIs of previous silver bullets :-)