Hello, I've spent a while trying to get Hermes working with OpenJMS (and yes, that included reading prior posts to this forum!)
I have created a provider for OpenJMS by adding the relevant libraries. I have tried creating a session two different ways, once with the RMI protocol and once with tcp. With RMI, all I get is an error message:
javax.jms.JMSException: Could not create InitialContext: Failed to get registry service for URL: rmi://localhost:1099
at hermes.JNDIContextFactory.createContext(JNDIContextFactory.java:282)
at hermes.JNDIConnectionFactory.createConnection(JNDIConnectionFactory.java:80)
at hermes.impl.jms.ConnectionManagerSupport.createConnection(ConnectionManagerSupport.java:122)
(....etc....)
Which is odd because my application connects to the same OpenJMS server over RMI quite happily (I created the provider url by cut and paste from the application)
The relevant section of my config file is here:
<factory classpathId="OpenJMSGroup">
<provider className="hermes.JNDIQueueConnectionFactory">
<properties>
<property name="binding" value="JmsQueueConnectionFactory "/>
<property name="initialContextFactory" value="org.exolab.jms.jndi.InitialContextFactory"/>
<property name="providerURL" value="rmi://localhost:1099"/>
</properties>
</provider>
<connection clientID="" connectionPerThread="false">
<session audit="false" id="JonSess" reconnects="0" transacted="true" useConsumerForQueueBrowse="false"/>
</connection>
(destinations removed for brevity)
<extension className="hermes.ext.DefaultHermesAdminFactory">
<properties/>
</extension>
</factory>
If I try to use the tcp protocol I get a little further. I am then able to right-click on the session to discover the queues on the server. However clicking on these queues always produces the same error message:
javax.jms.JMSException: JmsQueueConnectionFactory
at hermes.JNDIConnectionFactory.createConnection(JNDIConnectionFactory.java:85)
at hermes.impl.jms.ConnectionManagerSupport.createConnection(ConnectionManagerSupport.java:122)
Where the text of the exception ('JmsQueueConnectionFactory') always corresponds to whatever I have written in the 'binding' property for the connection factory. I've tried many different values for this field... Again, here's the relevant bit from the hermes config file:
<factory classpathId="OpenJMSGroup">
<provider className="hermes.JNDIQueueConnectionFactory">
<properties>
<property name="binding" value="JmsQueueConnectionFactory "/>
<property name="initialContextFactory" value="org.exolab.jms.jndi.InitialContextFactory"/>
<property name="providerURL" value="tcp://localhost:3035"/>
</properties>
</provider>
<connection clientID="" connectionPerThread="false">
<session audit="false" id="JonSess" reconnects="0" transacted="true" useConsumerForQueueBrowse="false"/>
</connection>
<extension className="hermes.ext.DefaultHermesAdminFactory">
<properties/>
</extension>
</factory>
Am I missing something obvious?
