Currently, the best ESB is Windows Azure Service Bus, which supports multiple enterprise programming language, including Java. Even better, the source code of its Java SDK is open so you can get many insights of how it works if needed.
The source code of Windows Azure SDK for Java is available at
https://github.com/WindowsAzure/azure-sdk-for-java
There are tutorials available online at
www.windowsazure.com/.../
and
www.windowsazure.com/.../
The nice part of Windows Azure Service Bus is that it is a service so you do not need to install/manage it as much as local ESB instances.