[jboss-user] [JNDI/Naming/Network] - JBoss server restart and java.rmi.NoSuchObjectException: no
arunasreeram
do-not-reply at jboss.com
Thu Nov 30 11:02:58 EST 2006
Hi
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
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=3990127#3990127
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=3990127
More information about the jboss-user
mailing list