由于在WebSphere 8.5.5应用程序容器中升级到hibernate 4.2.8而导致的ClassCastExceptions

See*_*ali 6 java websphere hibernate classloader javassist

我们最近将hibernate升级4.0.14.2.8.Final.

Hibernate.4.2.8.Final取决于javassist-3.18.1-GA.不幸的是,websphere 8.5.5并没有附带最新的javassist,但它不是我的问题.我试图强制websphere采取我的javassist jar,但我失败了(由于某种原因它总是加载${WAS_INSTALL_ROOT}/plugins).

我尝试了什么?

  • 在websphere控制台和WEB-INF/lib中首先加载本地类加载器(父级最后一个)的类包含最新的javassist jar.但是申请不起作用
  • 把最新的javassit jar放进去${WAS_INSTALL_ROOT}/lib/ext但没用
  • 添加了共享库并在应用程序中引用但没有运气.
  • 如果我替换javassist.jar ${WAS_INSTALL_ROOT}/plugins然后应用程序开始工作但这不是一个好的解决方案,因为其他Web应用程序可能依赖于旧的javassist

我的问题

如何在Websphere 8.5.5中使用(或注入或引用)最新的javassist jar?

这个#blog帮助我很快解决了这个问题.

See*_*ali 0

问题的解决方案是,PARENT_LAST但我在应用程序设置页面中进行了更改(应用程序 -> 应用程序类型 -> WebSphere 企业应用程序 -> *application_name* -> 类加载和更新检测)。

不幸的是,这不是放置PARENT_LAST期权的正确位置。因为我的应用程序是 Web 模块(准确地说是 war 文件;))我会将PARENT_LAST选项放入(应用程序 -> 应用程序类型 -> WebSphere 企业应用程序 -> *Application_Name*-> 管理模块 ->模块名称-> 类加载器顺序)。我不知道这个选项,直到我看到jhadesdev评论,尤其是链接

@jhadesdev 再次感谢。我已经在这里总结了一切