我最近试图在我们的Web应用程序中解决类强制转换异常。经过几次测试后发现,应用程序服务器重启后我们的Web应用程序的类加载器信息与webapp重启/更新后的类加载器信息不同(没有重启app服务器)。
使用管理模块检索类加载器信息 - 查看模块类加载器 - 在Websphere管理控制台中导出。
导出的XML中的项目(webapp .jar文件的路径)是相同的。但是有些项目(据我所知 - 这些是webapps和类加载器中的类)是不同的。
有人可以解释原因吗?
感谢。
更新: 这可能是主要问题的区别(我在日志文件中继续在XMLSignatureFactory上获取ClassCastException)。此类包含在xmlsec库中,此库与我们的webapp war文件一起部署。类加载器顺序设置为PARENT LAST,但有时似乎加载了来自IBM JDK的XMLSignatureFactory而不是xmlsec实现(在重新部署之后)。
我已在此post中进一步描述了此异常。在我更改了MANIFEST.MF文件中的设置并设置了servlet监听器后,我可以在每次重启后使应用程序正常工作,但仍然会发生重新部署问题(这非常烦人)。
答案 0 :(得分:0)
我在这里遇到了同样的问题。要解决该问题,请将xmlsec jar推送到AppServer \ classes,然后我们可以通过lib
覆盖IBM JDK