All the application servers you mention work pretty well, but I've had the most success with JBoss and WebLogic. All these servers are now
J2EE 1.4 compliant, so your code will be portable across the servers.
I don't have that much experience on WebSphere, so I'll comment on WebLogic.
WebLogic (which has license fees) has extra features that JBoss doesn't have. WebLogic has an excellent web-based admin console that enables you to configure JMS Queues/Topics, DataSources, and Security Realms - and much more. WebLogic has had an admin console since at least 2002/3.
JBoss, on the other hand, is just beginning to develop an Admin Console - it's still in Alpha (
http://jira.jboss.com/jira/browse/JBADMCON). In the meantime, you're required to setup JMS Queues/Topics, DataSources, and Security Realms in XML files that you put in the JBoss deployment directory.
I've been happy with both WebLogic and JBoss, but I use JBoss because I don't have to spend money on license fees (and I just live with the fact that I have to create the deployment descriptors).
I hope this helps.
Tom Marrs
Lead Author, JBoss at Work: A Practical Guide