© Copyright International Business Machines Corporation 2006, 2007. All rights reserved. US Government Users Restricted Rights - Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM® Corp.
如果在 WebSphere Application Server 上运行的多个 EAR 项目之间共享 Enterprise JavaBean(EJB)模块,并且从服务器中除去了其中一个 EAR 项目,则必须重新启动其他 EAR 项目,这样它们才能访问该 EJB 项目中诸如 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)
假定有一个项目,例如应用程序客户机项目,并且该项目具有以下配置:
- Java 的项目构面设置为 V1.4
- 此项目的目标服务器运行时在其服务器配置中启用了热方法替换选项
您可能会遇到“调试”视图中的“继续”按钮无法正常工作的情况。例如,以调试方式在服务器上运行应用程序时,如果尝试在运行时更改源代码,然后使用“继续”按钮来继续调试应用程序,此时“继续”按钮不起作用。在这种情况下,可能未应用对源代码所作的热方法替换更改。
尝试单击两次“继续”按钮以使运行时更改生效。
注意:如果将 Java 的项目构面设置为 V5.0,则不会发生此问题。
如果将实用程序 JAR 文件添加到 Web 项目的 Web 库中,并且在代码中引用该 JAR 文件中的类,则尝试在服务器上运行该应用程序时,可能会发生 java.lang.NoClassDefFoundError 错误。
变通方法是,对 EAR 模块添加实用程序 JAR 文件后,通过完成下列步骤将该 JAR 文件添加到 Web 项目的“J2EE 模块依赖项”中:
- 对 EAR 模块添加实用程序 JAR 文件。有关详细信息,请参阅产品帮助中的添加项目实用程序 JAR 文件主题。
- 右键单击 Web 项目,然后选择属性。将打开“属性”对话框。
- 选择 J2EE 模块依赖项。
- 在 J2EE 模块选项卡的 JAR/模块列下方,选中实用程序 JAR 文件旁边的复选框。
如果远程服务器已停止,则您在“新建服务器”向导中单击完成按钮后,该向导可能会耗用很长时间才能完成操作。变通方法是,在“新建服务器”向导中单击完成按钮前,启动远程服务器。
如果启动了受保护的 WebSphere Application Server V6.1,并且您在服务器编辑器中将服务器连接类型更改为远程方法调用(RMI)或 SOAP,则保存服务器编辑器中的更改后,您可能会看到以下发布失败错误消息:
由于未启动服务器,因此未执行发布。执行发布操作之前,请启动服务器。
您可以安全地忽略此错误。(可选)在“服务器”视图中的服务器状态更改为已启动之后,可以完成发布命令(在“服务器”视图中,右键单击服务器,然后选择发布)。