Jakarta ee 跟踪从.EAR/.WAR加载的类

Jakarta ee 跟踪从.EAR/.WAR加载的类,jakarta-ee,build,websphere,war,ear,Jakarta Ee,Build,Websphere,War,Ear,在WAS-8.0/8.5中,如何确认服务器已加载所有.jar/类 问题是,对于已经部署但无法在运行时加载的类,我在WAS-8.5中得到NoClassDefFoundError。您可以: 将counter.jar文件放入war的WEB-INF/lib文件夹(如果它是特定于模块的), 将counter.jar放在ear的lib文件夹中,如果它由许多模块共享 将其添加到MANIFEST.MF文件中,或者按照描述的方式,或者如果您没有Eclipse,只需将以下内容添加到该文件中: 类路径:counter

在WAS-8.0/8.5中,如何确认服务器已加载所有.jar/类

问题是,对于已经部署但无法在运行时加载的类,我在WAS-8.5中得到NoClassDefFoundError。

您可以:

将counter.jar文件放入war的WEB-INF/lib文件夹(如果它是特定于模块的), 将counter.jar放在ear的lib文件夹中,如果它由许多模块共享 将其添加到MANIFEST.MF文件中,或者按照描述的方式,或者如果您没有Eclipse,只需将以下内容添加到该文件中: 类路径:counter.jar


如果您想查看加载的类,可以使用WAS管理控制台查看:疑难解答->类加载程序查看器->选择应用程序->选择WAR/EJBJAR。注意:必须启用类加载器查看器服务。另外,请用信息显示堆栈跟踪和EAR结构,该类在实用程序JAR/WAR/EJB JAR中的位置。在WAS-8.5中,疑难解答->类加载器查看器选项不可用。它具有-诊断跟踪服务/日志记录和跟踪/更改日志详细级别/NCSA访问和HTTP错误日志记录。我已经启用了其他属性->类加载器查看器服务。下面是.EAR结构-DummyPortal.EAR/lib、DummyPortal.EAR/lib/Counter.jar、DummyPortal/DummyWar.WAR、DummyPortal/DummyWar/MyJsp.jsp。在MyJsp.jsp中,我从Counter.jar访问一个类,在那里我得到NoClassDefFoundError异常。不确定,为什么它不引用Counter.jar。这会是WAS-8.5中的一个bug吗?我想您的WAR并没有看到JAR中的类,因为它在部署程序集中缺少一个条目。WAS从WAR MANIFEST.MF文件读取它,该文件位于META-INF目录中。您是否将EAR lib目录配置为lib右键单击EAR->Properties->Deployment Assembly?如果是,那么您必须将Counter.jar添加到WAR部署程序集中,然后单击DummyWar WAR项目->属性->部署程序集->选项卡清单条目->添加。好的,魔杖我会尝试这个并很快更新,干杯谢谢您的响应。所以,我遵循了魔杖的建议,现在.JSP能够从Counter.jar引用AlphabetCounter.class。但现在,AlphabetCounter无法找到类:countercants,它也存在于Counter.jar中。AlphabetCounter似乎没有在Counter.jar中查找计数器常量。我是否需要在Counter.jar的清单文件中添加以下条目?清单条目:类路径:?另外,我的DummyPortal.EAR的lib文件夹中有Counter.jar。因为假定有多个.WAR模块访问它。下面是短堆栈跟踪:错误消息:javax.servlet.ServletException:SRVE0320E:找到了[MyFilter]筛选器,但发生了资源注入失败。错误代码:500目标Servlet:DispatcherServlet错误堆栈:com.ibm.wsspi.injectionengine.InjectionException:无法获取@InjectJava.lang.reflect.Field.cm的实例:javax.enterprise.Injection.CreationException:java.lang.NoClassDefFoundError:com.mycompany.constants.CounterConstants初始化failure@G.S.Tomar如果你的CounterConstants在jar中,如果您试图注入它,那么在jar的META-INF文件夹中应该有beans.xml。beans.xml已经存在于Counter.jar的META-INF中。CDI工作正常。AlphabetCounter是@Inject项,由CDI完美引用。当AlphabetCounter的默认构造函数试图通过countercants.java使用静态常量时,问题就开始了。