【发布时间】:2011-06-04 11:49:18
【问题描述】:
我在 Websphere Server v.6 上安装了两个应用程序。 1. SGO申请 2. 报告网
SGOApplication 有一个映射到应用程序级别的共享库,即 SGOAPPSHLIB
这个库有一个日志框架 jar(logsrv.jar)。 在 logsrv.jar 中有一个名为 SLEEventLogger 的类,它将消息记录到一个文件中,并使用了一些其他第三方类,这些类都捆绑在 logsrv.jar 中
我想将 logsrv.jar 用于 ReportingWeb 应用程序。 我从 ReportingWeb 中的另一个类调用了 SLEEventLogger 类。 我能够构建 ear 并将其部署为 logsrv.jar 在构建路径中。
之后,我尝试了以下操作,但都没有奏效。
- 在 ReportingWeb 应用程序的应用程序级别上映射 SGOAPPSHLIB。使用应用程序类加载器优先策略。
- 创建了一个新的共享库 REPSHLIB 并将 logsrv.jar 放入其中。将此库映射到应用程序。使用应用程序类加载器优先策略。
- 在服务器级别映射 REPSHLIB。这适用于 REPORTINGWEB 应用程序,但其他应用程序 SGOApplication 现在无法找到该类。
我在尝试运行 web 应用程序时遇到 ClassDefNotFoundException: com.statestreet.framework.logging.SLEEventLogger,并且控件到达了我使用 SLEEventLogger 的特定类。
我尝试在 websphere 控制台的疑难解答>类加载器中搜索 SLEEventLogger 类。 我发现模块类加载器正在加载 SLEEventLogger 类。
如何解决这个问题?我在服务器配置上尝试了很多排列和组合,但没有运气。我完全搞砸了。
【问题讨论】:
-
当您说“在服务器级别映射 REPSHLIB”时,您的意思是您将它放在 WebSphere 类加载器中,即使用 ws.ext.dirs 属性?
标签: java web-applications jakarta-ee websphere websphere-6.1