JNDI Problem

"Dave Pederson" <[email protected]> Tue, 11 Apr 2006 05:17:09 -0500
Newsgroups gmane.comp.java.openjms.user
Message-ID <[email protected]>
Hello-

I am having problem sending messages to a Queue from a Client that exists on
a separate computer that the OpenJMS Server.  The issue shown in the stack
trace seems to indicate there is a JNDI problem.  Here is my OpenJMS
information.
--------
I am using OpenJMS  version  0.7.7-alpha-3
--------
Here is my error message:

javax.naming.CommunicationException: Failed to get registry service for URL:
tcp://turing:3035/ [Root exception is java.rmi.ConnectIOException: Failed to
create connection; nested exception is:
        org.exolab.jms.net.connector.ResourceException: Failed to connect to
turing:3035]
        at org.exolab.jms.jndi.InitialContextFactory.getInitialContext(
InitialContextFactory.java:146)
        at javax.naming.spi.NamingManager.getInitialContext(
NamingManager.java:667)
        at javax.naming.InitialContext.getDefaultInitCtx(InitialContext.java
:247)
        at javax.naming.InitialContext.init(InitialContext.java:223)
        at javax.naming.InitialContext.<init>(InitialContext.java:197)
        at net.nighthawk.jms.queue.send.SimpleQueueSender.main(
SimpleQueueSender.java:42)
Caused by: java.rmi.ConnectIOException: Failed to create connection; nested
exception is:
        org.exolab.jms.net.connector.ResourceException: Failed to connect to
turing:3035
        at org.exolab.jms.net.orb.Locator.getProxy(Locator.java:137)
        at org.exolab.jms.net.orb.Locator.getRegistry(Locator.java:103)
        at org.exolab.jms.net.orb.DefaultORB.getRegistry(DefaultORB.java
:267)
        at org.exolab.jms.client.net.SharedORB.getRegistry(SharedORB.java
:121)
        at org.exolab.jms.jndi.InitialContextFactory.getInitialContext(
InitialContextFactory.java:144)
        ... 5 more
Caused by: org.exolab.jms.net.connector.ResourceException: Failed to connect
to turing:3035
        at
org.exolab.jms.net.socket.SocketManagedConnection.createSocketProtected(
SocketManagedConnection.java:268)
        at org.exolab.jms.net.socket.SocketManagedConnection.createSocket(
SocketManagedConnection.java:182)
        at org.exolab.jms.net.socket.SocketManagedConnection.<init>(
SocketManagedConnection.java:114)
        at org.exolab.jms.net.tcp.TCPManagedConnection.<init>(
TCPManagedConnection.java:75)
        at
org.exolab.jms.net.tcp.TCPManagedConnectionFactory.createManagedConnection(
TCPManagedConnectionFactory.java:98)
        at
org.exolab.jms.net.connector.DefaultConnectionPool.createManagedConnection(
DefaultConnectionPool.java:221)
        at
org.exolab.jms.net.connector.AbstractConnectionManager.allocateConnection(
AbstractConnectionManager.java:140)
        at
org.exolab.jms.net.connector.AbstractConnectionFactory.getConnection(
AbstractConnectionFactory.java:167)
        at
org.exolab.jms.net.connector.AbstractConnectionManager.getConnection(
AbstractConnectionManager.java:208)
        at org.exolab.jms.net.orb.Locator.getProxy(Locator.java:131)
        ... 9 more
--------
I am using the tcp connector as follows:

            Hashtable<String, String> env = new Hashtable<String, String>();
            env.put(Context.SECURITY_CREDENTIALS, "rhapsody");
            env.put(Context.SECURITY_PRINCIPAL, "rhapsody");
            env.put(Context.INITIAL_CONTEXT_FACTORY, "
org.exolab.jms.jndi.InitialContextFactory");
            env.put(Context.PROVIDER_URL, "tcp://turing:3035/");

            Context jndiContext = new InitialContext(env);  // Here is where
the exception gets thrown...
--------
Here are the contents of my configuration file on the turing OpenJMS server:

<?xml version="1.0"?>
<Configuration>
  <ServerConfiguration host="turing" embeddedJNDI="true" />
  <Connectors>
    <Connector scheme="tcp">
      <ConnectionFactories>
        <ConnectionFactory name="ConnectionFactory" />
      </ConnectionFactories>
    </Connector>
    <Connector scheme="rmi">
      <ConnectionFactories>
        <QueueConnectionFactory name="JmsQueueConnectionFactory" />
        <TopicConnectionFactory name="JmsTopicConnectionFactory" />
      </ConnectionFactories>
    </Connector>
  </Connectors>
  <DatabaseConfiguration>
    <RdbmsDatabaseConfiguration
      driver="org.apache.derby.jdbc.EmbeddedDriver"
      url="jdbc:derby:openjmsdb;create=true"
      user="openjms"
      password="openjms"/>
  </DatabaseConfiguration>
  <AdminConfiguration script="${openjms.home}\bin\startup.bat" />
  <SecurityConfiguration securityEnabled="true">
  <Users>
    <User name="rhapsody" password="rhapsody" />
  </Users>
</Configuration>

Does my problem have to do with the fact that I am using embedded jndi on
the OpenJMS server?  If so, do you reccomend any external JNDIproviders that
I could use?  I have also tried the external setting examples given in the
OpenJMS administration guide, but they did not work.

Thanks for your time.

-Dave