I have an application that runs on Jboss 3.2.3 (W2K and RH), with a client application 
needing to do a lookup to grab a session bean. Everything works fine as long as the 
client is on the same machine as the server. As soon as I try to do the JNDI lookup on 
a remote server, the JNDI directory appears to be empty to the client.

I then wrote a test class that does a listBindings() on the InitialContext. Whenever I 
try to list bindings for the context that I know exists, it'll give the following 
error:

javax.naming.CommunicationException.  Root exception is 
java.rmi.NoSuchObjectException: no such object in table
        at 
sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:247)
        at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:223)
        at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:133)
        at org.jnp.server.NamingServer_Stub.listBindings(Unknown Source)
        at org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:747)
        at org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:735)
        at javax.naming.InitialContext.listBindings(InitialContext.java:396)
        at com.blastradius.buildman.test.Test.main(Test.java:26)

public class Test {
    public static void main(String[] args) {
        try {
            Hashtable contextProperties = new Hashtable();
            contextProperties.put("java.naming.factory.initial", 
"org.jnp.interfaces.NamingContextFactory");
            contextProperties.put("java.naming.factory.url.pkgs", 
"org.jboss.naming:org.jnp.interfaces");
            contextProperties.put("java.naming.provider.url", 
"jnp://nolan.radius:8099");

            InitialContext initialContext = new InitialContext(contextProperties);
            System.out.println(initialContext.getEnvironment().toString());
            NamingEnumeration enum = initialContext.listBindings("buildman/ejb");
            System.out.println(enum.toString());

            while (enum.hasMoreElements()) {
                System.out.println(enum.next().toString());
            }
        }
        catch (NamingException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
    }
}

If I do try it with "java:" instead, I get back an empty 
org.jnp.interfaces.NamingEnumerationImpl

I also set the bind address for jboss to the IP address of the box. When I telnet to 
the IP and the port I run JNDI on (8099), I get garbage back with the RMI url being 
the correct IP address.

Any ideas?

<a 
href="http://www.jboss.org/index.html?module=bb&op=viewtopic&p=3826640#3826640";>View 
the original post</a>

<a 
href="http://www.jboss.org/index.html?module=bb&op=posting&mode=reply&p=3826640>Reply 
to the post</a>


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-user

Reply via email to