RE: Problems configuring https connection
"Tim Anderson" <[email protected]>
| Newsgroups | gmane.comp.java.openjms.user |
|---|---|
| Message-ID | <[email protected]> |
I don't have the spare cycles to look into this at the moment, but I'm confident you won't experience this with the 0.7.7-alpha-1 release. Please try it out. Also note that you should be using "org.exolab.jms.jndi.InitialContextFactory" instead of "org.exolab.jms.jndi.http.SslHttpJndiInitialContextFactory" -Tim _____ From: openjms-user-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org [mailto:openjms-user-admin-5NWGOfrQmneRv+LV9MX5uipxlwaOVQ5f@public.gmane.org] On Behalf Of TJ Greenier Sent: Friday, 8 July 2005 12:49 AM To: [email protected] Subject: [openjms-user] Problems configuring https connection Hi, I am having trouble configuring my https connection. I have successfully used the default RMI configuration and have also got the http connection working. So I assume that I have the open jms servlet installed correctly. Basically I am getting this error message when I attempt to publish a message: javax.jms.JMSException: Failed to process request createPublisher: session not found at org.exolab.jms.server.mipc.IpcJmsSessionConnection.notify(IpcJmsSessionConne ction.java :122) at org.exolab.jms.server.mipc.IpcJmsReceiver.notify(IpcJmsReceiver.java:100) at org.exolab.jms.server.mipc.IpcServerChannel.run(IpcServerChannel.java:161) I am running Tomcat 5.5 using Java 1.5. Here are some of my configuration settings: Tomcat server.xml file: <!-- Define a SSL HTTP/1.1 Connector on port 8443 --> <Connector port="8443" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" disableUploadTimeout="true" acceptCount="100" scheme="https" secure="true" clientAuth="false" sslProtocol="TLS" /> openjms.xml file (in its entirety): <?xml version="1.0" ?> - <!-- OpenJMS configuration: . RMI connectors . JDBM persistency . embedded JNDI provider . embedded RMI registry, running on port 1099 . preconfigured destinations NOTES: this configuration shows all configuration elements relevant when using an RMI connector. --> - <Configuration> - <!-- Optional. This represents the default configuration --> <ServerConfiguration host="localhost" embeddedJNDI="true" /> - <!-- Required when using an RMI connector --> - <Connectors> - <Connector scheme="rmi"> - <ConnectionFactories> <QueueConnectionFactory name="JmsQueueConnectionFactory" /> <TopicConnectionFactory name="JmsTopicConnectionFactory" /> </ConnectionFactories> </Connector> - <Connector scheme="http"> - <ConnectionFactories> <QueueConnectionFactory name="HTTPQueueConnectionFactory" /> <TopicConnectionFactory name="HTTPTopicConnectionFactory" /> </ConnectionFactories> </Connector> - <Connector scheme="tcp"> - <ConnectionFactories> <QueueConnectionFactory name="TCPQueueConnectionFactory" /> <TopicConnectionFactory name="TCPTopicConnectionFactory" /> </ConnectionFactories> </Connector> - <Connector scheme="https"> - <ConnectionFactories> <QueueConnectionFactory name="HTTPSQueueConnectionFactory" /> <TopicConnectionFactory name="HTTPSTopicConnectionFactory" /> </ConnectionFactories> </Connector> </Connectors> - <!-- Define HTTP configuration properties --> <HttpConfiguration host="127.0.0.1" port="8080" serverServlet="/openjms/OpenJMSServer" /> - <!-- Define HTTPS configuration properties --> <HttpsConfiguration host="localhost" port="8443" serverServlet="/openjms/OpenJMSServer" /> - <!-- Required --> - <DatabaseConfiguration> <JdbmDatabaseConfiguration name="openjms.db" /> </DatabaseConfiguration> - <!-- Required --> <AdminConfiguration script="${openjms.home}\bin\startup.bat" /> - <!-- Optional. If not specified, no destinations will be created --> - <AdministeredDestinations> - <AdministeredTopic name="topic1"> <Subscriber name="sub1" /> <Subscriber name="sub2" /> </AdministeredTopic> <AdministeredQueue name="queue1" /> <AdministeredQueue name="queue2" /> <AdministeredQueue name="queue3" /> </AdministeredDestinations> - <!-- Optional. If not specified, no users will be created --> - <Users> <User name="admin" password="openjms" /> </Users> </Configuration> Here is how I am calling from my code: Hashtable props = new Hashtable(); System.setProperty("javax.net.ssl.trustStore", "C:\\Documents and Settings\\greeniet\\.keystore"); System.setProperty("javax.net.ssl.keyStore", "C:\\Documents and Settings\\greeniet\\.keystore"); System.setProperty("javax.net.ssl.keyStoreType", "jks"); System.setProperty("javax.net.ssl.keyStorePassword", "changeit"); props.put(Context.INITIAL_CONTEXT_FACTORY, "org.exolab.jms.jndi.http.SslHttpJndiInitialContextFactory"); props.put(Context.PROVIDER_URL, "https://localhost:8443/") <https://localhost:8443/> ; try { Context context = new InitialContext(props); factory = (TopicConnectionFactory) context.lookup("HTTPSTopicConnectionFactory"); } catch (NamingException e) { e.printStackTrace(); System.err.println("Connection Error Received, System Will Exit"); System.exit (0); } The above code execute successfully. I get my error when I try to publish a message: try{ TopicSession tmpSession = connection.createTopicSession(false, Session.CLIENT_ACKNOWLEDGE); connection.start(); Topic topic = tmpSession.createTopic(msg.getTopic()); TopicPublisher publisher = session.createPublisher(topic); int delivery_mode = DeliveryMode.PERSISTENT; // need to copy message else destination will change, and ack will fail. ObjectMessage message = tmpSession.createObjectMessage(msg); publisher.publish(message, delivery_mode, 1, 0); tmpSession.close(); } catch (JMSException exception) { success = false; exception.printStackTrace(); System.err.println("Error Publishing Message."); } The red bold line is the one the error is thrown on. Any suggestions or help is much appreciated. And thanks in advance. All of the documentation on the site has been great and I have looked through the mailing list archives, but I can't seem to solve this problem. Thank you, T.J. Greenier