Websphere:parent_last会影响其他应用程序吗?

时间:2013-10-10 06:25:59

标签: websphere classloader

parent_last会影响其他应用程序吗? 我的应用程序使用parent_last是否受到其他应用程序的影响?

服务器设置为“多个类加载器”(每个应用程序IIUC一个)。

根据我的理解,这意味着所有类都是从应用程序加载的,对吗?

如果另一个应用程序加载了一个存在于websphere扩展中的类,并且稍后我的应用程序使用该类,会发生什么。它会被重新加载,还是会使用来自父项的那个?(它可能与我的应用程序中的类不兼容)。

websphere手册说:

“通过指定首先加载本地类加载器的类(父类最后一个),您的应用程序可以覆盖父类加载器中包含的类,但是如果您混合使用重写类和非类型,则此操作可能会导致ClassCastException或LinkageErrors - 重写的课程。“

但我不明白这种潜在的风险。可以somone请举例说明吗?

1 个答案:

答案 0 :(得分:1)

应用程序类加载器加载的类不会以任何方式干扰其他应用程序加载的类,因为应用程序类加载器彼此隔离。

您提供的引用警告当库具有传递依赖性时可能发生的潜在问题。例如,您的应用程序使用依赖于libraryB的libraryA。 LibraryA是某种"标准"应用程序服务器提供的库,因此您不要将其与应用程序打包在一起。然后,如果由于某种原因你需要在应用程序中安装libraryB并且它的版本与libraryA所期望的版本不同,那么可能存在不兼容性问题。