除去在多个 EAR 项目中共享的 EJB 模块

如果在多个运行于 WebSphere® Application Server 上的企业应用程序(EAR)项目之间共享一个企业 JavaBean(EJB)模块,然后从服务器除去其中一个 EAR 项目,则必须重新启动其他 EAR 项目,然后这些项目才能访问 EJB 项目中的资源,如 bean 类。

如果您未执行此操作,则可能会看到类似于以下显示的内容的错误消息。之所以会发生这些错误,是因为除去 EAR 时,会从服务器除去 EJB 项目中的 Java™ 命名和目录接口(JNDI)名称。

以下是样本错误消息:

00000028 SystemOut     O javax.naming.NameNotFoundException: Context: myCell/nodes/myNode/servers/server1, name: ejb/ejbs/Session20Home: First component in name Session20Home not found. [Root exception is org.omg.CosNaming.NamingContextPackage.NotFound: IDL:omg.org/CosNaming/NamingContext/NotFound:1.0]
    at com.ibm.ws.naming.jndicos.CNContextImpl.processNotFoundException(CNContextImpl.java:4730)
    at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1907)
    at com.ibm.ws.naming.jndicos.CNContextImpl.doLookup(CNContextImpl.java:1862)
    at com.ibm.ws.naming.jndicos.CNContextImpl.lookupExt(CNContextImpl.java:1552)
    at com.ibm.ws.naming.jndicos.CNContextImpl.lookup(CNContextImpl.java:1354)
    at com.ibm.ws.naming.util.WsnInitCtx.lookup(WsnInitCtx.java:172)
    at javax.naming.InitialContext.lookup(InitialContext.java:363)
    at com.ibm.ivj.ejb.runtime.AbstractAccessBean.lookupAndCacheHome(AbstractAccessBean.java:224)
    at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getGlobalHome(AbstractAccessBean.java:216)
    at com.ibm.ivj.ejb.runtime.AbstractAccessBean.getHome(AbstractAccessBean.java:249)
    at ejbs.Session20AccessBean.ejbHome(Session20AccessBean.java:50)
    at ejbs.Session20AccessBean.instantiateEJB(Session20AccessBean.java:80)
    at ejbs.Session20AccessBean.foo(Session20AccessBean.java:91)

反馈