I found the following very old post but thought I'd start a new one after all this
time.
http://www.jboss.com/index.html?module=bb&op=viewtopic&t=20245
I'm upgrading some code that has run under 2.4.3 and 3.2.7 to run under 4.2.2. The
upgrade process was fairly painless. So far, I've only run into this one runtime
issue. The architecture consists of Java clients invoking a session EJB which exists
merely to forward the calls to an MBean; there's a one-to-one mapping of methods in
the EJB to methods in the MBean (plus the MBean has additional code.) This has worked
fine in the previous JBoss versions. I'm running both 3.2.7 and 4.2.2 on JDK 1.5.
With 4.2.2, I'm getting the exception "java.rmi.server.ServerNotActiveException:
not in a remote call" when the MBean invokes
java.rmi.server.UnicastRemoteObject.getClientHost(). If I catch this exception and just
set the client host IP address to "127.0.0.1", everything continues normally:
the MBean does what it is supposed to do and returns the correct result.
What has changed in version 4 since versions 2 and 3 to produce this
ServerNotActiveException? Is this happening because the session EJB is the code
contacting the MBean, and not the originating client? Did this work before because EJBs
were maintaining the client context and now 4.2.2 they are not? Perhaps this is an aspect
of EJB3?
Unfortunately, the API implemented by the EJB and MBean consists of over 60 methods, so
retrofitting a separate parameter to each of them to contain the client's IP address
is not really feasible.
Thanks for all ideas.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4158829#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...