Remote JNDI/EJB Problems

Discussion in 'Java' started by Chris, Jun 18, 2004.

  1. Chris

    Chris Guest

    How's everyone doing today.. Good. :)

    well my problem is driving me crazy, so I hope someone can help me
    figure out why this is doing what it's doing.. i'm probably just doing
    something "stupid"

    I'm trying to call a remote stateless session bean from a different
    physical box.

    what i have working: i have a ear file w/ the war + ejb.jar all
    enclosed and that is working beautifully. now i'm trying to
    distribute out the processes. have a "client" either tomcat or a java
    application sitting on one box, and the ejb container w/ my session
    facades on the other box.

    my environment: jboss 3.2.2-tomcat 4.1.24 bundle, linux redhat.

    I've been monkeying around with the configuration and have gotten two
    different errors.

    1st error: java application (see source below) on box one trying to
    connect to box 2 jndi but saying connection refused to 127.0.0.1. I
    have also even removed (commented out) the localhost references to
    /etc/hosts.

    this is trying to do a simple listBindings.

    java source:

    import javax.naming.*;
    import java.util.*;
    import javax.rmi.PortableRemoteObject;

    public class TestClient3 {

    public static void main(String[] args){
    try{

    String sInitialContextFactory =
    "org.jnp.interfaces.NamingContextFactory";
    String sProviderUrl = "jnp://192.168.0.100:1099";
    String sFactoryUrl = "java.naming.factory.url.pkgs";
    // also tried sInterface org.jboss.naming:eek:rg.jnp.interface
    String sInterface = "org.jboss.naming.client:eek:rg.jnp.interfaces";

    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, sInitialContextFactory);
    env.put(Context.PROVIDER_URL, sProviderUrl);
    env.put(sFactoryUrl, sInterface);


    InitialContext initialContext = new InitialContext(env);
    System.out.println(initialContext.getEnvironment().toString());
    NamingEnumeration enum = initialContext.listBindings("");
    System.out.println(enum.toString());

    while (enum.hasMoreElements()) {
    System.out.println(enum.next().toString());
    }
    }catch(Exception e){ e.printStackTrace(System.err);
    }
    }
    }

    // my box ip i'm running this from is 192.168.0.194 and here's the
    output results:

    {java.naming.provider.url=192.168.0.100:1099,
    java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory,
    java.naming.factory.url.pkgs=org.jboss.naming.client:eek:rg.jnp.interfaces}
    javax.naming.CommunicationException [Root exception is
    java.rmi.ConnectException: Connection refused to host: 127.0.0.1;
    nested exception is:
    java.net.ConnectException: Connection refused]
    at org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:796)
    at org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:735)
    at javax.naming.InitialContext.listBindings(InitialContext.java:396)
    at xxx.xxx.xxx.xxx.client.TestClient3.main(TestClient3.java:48)
    Caused by: java.rmi.ConnectException: Connection refused to host:
    127.0.0.1; nested exception is:
    java.net.ConnectException: Connection refused
    at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:567)
    at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
    at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
    at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:101)
    at org.jnp.server.NamingServer_Stub.listBindings(Unknown Source)
    at org.jnp.interfaces.NamingContext.listBindings(NamingContext.java:747)
    ... 3 more


    Any Ideas?


    Problem two. I got the jndi connecting properly but when i try to a
    lookup w/ the same string name i'm using through jndi on the bundled
    process it's coming up w/

    javax.naming.CommunicationException [Root exception is
    java.rmi.NoSuchObjectException: no such object in table]
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:647)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:507)
    at javax.naming.InitialContext.lookup(InitialContext.java:347)
    at xxx.xxx.xxx.client.TestClient2.main(TestClient2.java:48)
    Caused by: 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.lookup(Unknown Source)
    at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:528)
    ... 3 more


    source:
    public static void main(String args[]){

    try{

    String sInitialContextFactory =
    "org.jnp.interfaces.NamingContextFactory";
    String sProviderUrl = "jnp://zodiac:1099";
    // zodiac is 192.168.0.100
    String sFactoryUrl = "java.naming.factory.url.pkgs";
    String sInterface = "org.jboss.naming:eek:rg.jnp.interfaces";


    Hashtable env = new Hashtable();

    env.put(Context.INITIAL_CONTEXT_FACTORY, sInitialContextFactory);
    env.put(Context.PROVIDER_URL, sProviderUrl);
    env.put(sFactoryUrl, sInterface);


    InitialContext ctx = new InitialContext(env);

    Object jndi = ctx.lookup("zodiac_facade/BusinessService");
    Object portable = PortableRemoteObject.narrow(jndi,
    getEJBClassRef(nServiceId));

    }catch(Exception e){ e.printStackTrace(System.err);
    }
    }



    and the jndi lookup string works inside the web container on the same
    box... I even got it working through the client application on the
    same box.... apparently the problem is just when it's on a remote box.
    there is no firewall i've turned off /etc/init.d/iptables.sh stop

    i'm baffled,

    someone please give me some pointers.

    Chris
     
    Chris, Jun 18, 2004
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Mumbai Joe
    Replies:
    0
    Views:
    601
    Mumbai Joe
    Jul 29, 2003
  2. Massimiliano
    Replies:
    5
    Views:
    440
    Andrew Thompson
    Jan 4, 2004
  3. Mike S
    Replies:
    0
    Views:
    23,008
    Mike S
    Sep 16, 2004
  4. Mick
    Replies:
    2
    Views:
    9,547
    Marcin Grunwald
    Feb 23, 2005
  5. Raymond Schanks
    Replies:
    0
    Views:
    657
    Raymond Schanks
    Aug 3, 2010
Loading...

Share This Page