我有2个Java EE应用程序,比如App-A和App-B,部署到同一个WebLogic 10g服务器。 App-B定期对App-A进行EJB远程调用。 App-A在App-B运行时已取消部署。在取消部署App-A之后,我得到“javax.ejb.NoSuchEJBException:Bean已经取消部署。”当App-B尝试创建远程EJB调用顶级App-A时出现异常。在我重新启动App-A之后,将远程EJB调用顶级App-A没有问题。
每当我尝试进行EJB调用时,我都会创建新的初始上下文和查找EJB,请参阅下面的代码示例。那么为什么我会得到例外。如何在不重新启动应用程序的情况下克服这个问题?
Hashtable<String, String> env = new Hashtable<String, String>();
env.put(Context.INITIAL_CONTEXT_FACTORY, "weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL, providerUrl);
javax.naming.InitialContext initialContext = new javax.naming.InitialContext(env);
ejbRemote = (ServiceBeanRemote) initialContext.lookup(jndi);