HermesJMS provides a GUI to access JMS queues and topics for common tasks such as sending messages, removing messages and copying messages between queues and topics. It’s one of some “must have” tools for EMS admins and application support team.
Get the latest installer from SourceForge: http://sourceforge.net/projects/hermesjms/files/ then run it:
java -jar hermes-installer.jar
Installation is very simple, just few screens: release notes, license agreement, installation path, components (here is only one actually), summary, files copying, shortcuts creation and installation finish.
To start HermesJMS run hermes.bat in your <installation_folder>\HermesJMS\bin. If you got error message “cannot find \bin\javaw”, make sure that you have JAVA_HOME system variable defined to your jre folder.
When Hermes started successfully, click on “Create new JMS session” button, preferences window will appear, select providers tab and right-clik on free space. Then press “Add Group” and enter group name. Right-click on “Library” and press “Add JAR(s)”. Look in <tibco_home>\ems\5.1\lib folder and select all .jar files there. Click “Open”, then let Hermes to scan jars for factories: press “Scan” button.
Then press “Apply”. All libraries will be in the list like on my screenshot.
Go to “Sessions” tab and enter name for session: “My EMS” for example, then select “EMS” loader.
Next step is select “com.tibco.tibjms. TibjmsConnectionFactory” class and “Tibco EMS” plugin. Order is very important: select loader, then class, then plugin. Right-click on free space in plugin section and press “Add property”. You have to enter all three properties: username, password and serverURL, do the same for Connection Factory, then press “OK” to save and close properties window.
Now we can connect Hermes to our EMS. Let it discover queues and topics, press “Discover queues and topics from the provider” button. Then confirm replacement of the current set of destinations and list will be updated. That’s all.
If you need more information: HermesJMS home.











1. Comment by Karthik
11/Feb/2010 at 2:19 am
Nice concise tutorial. Thanks.
2. Comment by santhi
13/May/2010 at 7:21 pm
Very Nice blog Serge, please keep it up, and document your experiences with tibco
3. Comment by Serge
13/May/2010 at 10:40 pm
Thanks to all my readers! By the way, guest posts are welcome here :)
4. Comment by Subhasish
10/Jun/2010 at 12:31 pm
Very nice description for the hermes configuration and was very help !!! Thanks.
5. Comment by ahsan
6/Jul/2010 at 11:21 am
Thanks for such nice explanation on how to setup HermesJMS. I followed this and configured the tool. Now I am connected to an EMS Server, I can see the queues created on that server.
But, anything I do after that, gives me error. e.g. if I take properties of a queue, I get error: cant get properties for . In details I see exception: javax.jms.JMSException: Failed to connect to the server at tcp://localhost:7222
Why is it still trying to connect to default path (localhost:7222) when I have given serverURL, username and password? Please help.
6. Comment by Serge
6/Jul/2010 at 4:09 pm
Hi Ahsan,
In your session preferences, try to enter the same properties for Connection Factory as you did for Plug-In. Look at my updated screenshot above.
7. Comment by Mubashir
8/Jul/2010 at 8:23 am
Thanks for this explanation… I have followed all the above steps. Queues are appearing on the screen. But, this is not representing any data there. Same ems is showing queues data on other jms softwares? Please help.
8. Comment by Serge
19/Jul/2010 at 3:15 pm
I suppose that your other jms software can consume messages. It is better to check EMS queue using tibemsadmin’s
show queue <queue_name>command. If it shows pending messages, you can monitor it in Hermes. Just find target queue in the list under your session, then right-click on it and select “Browse…”.9. Comment by pavlo
21/Jul/2010 at 4:54 pm
I have followed all the above steps but right after I choosing Class “com.tibco.tibjms. TibjmsConnectionFactory” – Hermes shows me Error Message:
java.lang.NoClassDefFoundError: Could not initialize class net.sf.cglib.beans.BeanGenerator
at hermes.util.ReflectUtils.mixinGetterMethodsAndInstantiate(ReflectUtils.java:164)
at hermes.util.ReflectUtils.createConnectionFactory(ReflectUtils.java:215)
at hermes.browser.dialog.ConnectionFactoryConfigPanel$4.contentsChanged (ConnectionFactoryConfigPanel.java:238)
at javax.swing.AbstractListModel.fireContentsChanged(AbstractListModel.java:100)
…
May be you can figure out whats going on? I’m a newbie with JMS.Thank you !
10. Comment by Serge
21/Jul/2010 at 6:14 pm
Hi Pavlo!
I suggest you to check the CLASSPATH in your hermes.bat file (or in other file which you use to define variables and start Hermes). Default CLASSPATH after Hermes installation looks good!
11. Comment by pavlo
21/Jul/2010 at 6:22 pm
Hello, Serge!
Problem has been solved by installing Hermes v1.12.
Thanks for advice.
12. Comment by sanjay yadav
24/Aug/2010 at 6:06 pm
Thanks a lot, Serge