java - 覆盖类加载器“父优先”
问题描述
我在 Web 应用程序服务器单节点设置上运行 Java Web 应用程序,其中我使用了一个库,我包含在我的 Web-Inf 中并在我的代码中使用。
问题是我有另一个应用程序将其库添加到 WebSphere 父 lib 文件夹中,其中一个库与我正在使用的库相同,但版本较旧,从而产生冲突并干扰我的代码。
不幸的是,服务器类加载器首先配置为父级,我无法改变这一事实。我的问题是,如何让我的应用程序使用我的库,而忽略类加载器使用的库?
解决方案
解决方案是将有冲突的包移动到共享库,将库配置为使用隔离的类加载器,并将该库与您的应用程序或模块相关联。“隔离类加载器”设置为共享库创建了一个单独的父类加载器,因此您可以将该行为仅针对需要它的工件,而不必将其应用于整个应用程序或模块。
我专门引用了“为此共享库使用隔离的类加载器”设置。
推荐阅读
- spring-boot - org.springframework.beans.factory.BeanCreationException:创建定义名称“mvcValidator”的bean时出错
- javascript - 如何在数组中找到虚假值?
- c# - WPF如何在ListView中绑定ItemsSource的Item
- asp.net - asp页面上的XSS
- javascript - 变量名内的计数器变量 i
- android - 带有 RecyclerView 的 LinearLayout 在 CardView 外滚动时隐藏 ImageView
- apache-spark - 如何将聚合数据添加到 Apache Spark 中的原始数据集?
- php - 勾选表单上的复选框时PHP函数添加日期时间戳
- laravel - 将变量从组件传递到插槽
- android - Google 登录失败 error_description:"Invalid Value"