JBoss server restart and java.rmi.NoSuchObjectException: no
arunasreeram Nov 30, 2006 11:02 AMHi
I am running into an issue with remote object lookup after a Jboss Server restart.
I am running JBoss 4.0.5 GA.
I have a test case that does the following -
*test client creates Init Context with properties and successfully looks up a remote EJB interface.
*test client closes init context
*test client sleeps for 45 seconds.
*In the meanwhile the JBoss server is restarted.
*The test client wakes up and creates a new initial context with same props as before
*Test client tries to look up the same remote EJB interface as before.This time the look up fails with java.rmi.NoSuchObjectException: no such object in table.
*Even if the test client looks up a different remote EJB interface the same exception is thrown
The relevant code snippet from the test client is below
InitialContext ctx = new InitialContext(); ctx.addToEnvironment("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); ctx.addToEnvironment("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces"); ctx.addToEnvironment(InitialContext.PROVIDER_URL,"my-hostname"); Object beanobj = ctx.lookup("MyService/RemoteIAdmin"); assertNotNull(beanobj); ctx.close(); try { System.out.println("Waiting for 35 seconds. Restart Jboss now!!"); Thread.sleep(45 * 1000); // wait for 30 seconds System.out.println("Done sleeping. Will do second lookup now"); } catch (InterruptedException e) { e.printStackTrace(); } InitialContext ctx_1 = new InitialContext(); ctx_1.addToEnvironment("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory"); ctx_1.addToEnvironment("java.naming.factory.url.pkgs","org.jboss.naming:org.jnp.interfaces"); ctx.addToEnvironment(InitialContext.PROVIDER_URL,"my-hostname"); Object beanobj_1 = ctx.lookup("MyService/RemoteIAdmin"); assertNotNull(beanobj_1);
The exception occurs on the second lookup the stack trace is as follows
javax.naming.CommunicationException [Root exception is java.rmi.NoSuchObjectException: no such object in table] at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:722) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:587) at javax.naming.InitialContext.lookup(Unknown Source) .... Caused by: java.rmi.NoSuchObjectException: no such object in table at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(Unknown Source) at sun.rmi.transport.StreamRemoteCall.executeCall(Unknown Source) at sun.rmi.server.UnicastRef.invoke(Unknown Source) at org.jnp.server.NamingServer_Stub.lookup(Unknown Source) at org.jnp.interfaces.NamingContext.lookup(NamingContext.java:625) ... 19 more
I turned on rmi debug for both server and client using -Dsun.rmi.loader.logLevel=verbose but I wasnt able to discern much from the log output
I did a bit of reading on the jboss forums and wiki but none of the solutions listed has helped me. Readings include
-http://wiki.jboss.org/wiki/Wiki.jsp?page=IGetNoSuchObjectException
-http://www.jboss.com/index.html?module=bb&op=viewtopic&t=62446
-AS