【发布时间】:2014-12-12 14:56:13
【问题描述】:
我最近试图在我们的 Web 应用程序中解决类转换异常。经过几次测试发现,我们的Web应用程序在应用服务器重启后的类加载器信息与webapp重启/更新后的类加载器信息不同(没有应用服务器重启)。
类加载器信息是使用 Websphere 管理控制台中的管理模块 - 查看模块类加载器 - 导出来检索的。
导出的 XML 中的项目(webapp .jar 文件的路径)是相同的。但是有些项目(据我了解 - 这些是 webapps 类加载器中的类)是不同的。
谁能解释一下原因?
谢谢。
更新: 这可能是主要问题的区别(我在我的日志文件中不断收到关于 XMLSignatureFactory 的 ClassCastException)。此类包含在 xmlsec 库中,并且该库与我们的 webapp 战争文件一起部署。类加载器顺序设置为 PARENT LAST,但有时似乎加载了 IBM JDK 的 XMLSignatureFactory 而不是 xmlsec 实现(重新部署后)。
我在post 中进一步描述了异常。在我更改了 MANIFEST.MF 文件中的设置并设置了 servlet 侦听器后,我可以在每次重新启动后让应用程序正常工作,但仍然会出现重新部署问题(这很烦人)。
【问题讨论】:
-
除非你能提供更具体的细节,否则我认为不太可能有人能提供帮助。 JAR 文件或模块或共享库的不同项目名称是什么?它们有什么不同?你能显示之前和之后吗?
-
@bkail - 我已经更新了帖子。希望这能更好地描述我的问题。
标签: java classloader websphere-7