在我的WebSphere 8应用服务器上,默认的类加载顺序是parent_first (尝试从app服务器类加载器加载,然后从EAR类加载程序加载)。
这会在我的应用程序使用Apache的HttpClient和WebSphere的内部使用之间产生冲突。
我正在考虑将加载顺序切换到parent_last (WebLogic中的首选-web类)。
当将Java应用程序类加载顺序翻转到parent_last?时,需要注意哪些缺陷
发布于 2013-01-17 10:49:40
不应该有。
PARENT_LAST允许您的应用程序分发类和jars,否则这些类和jars会与WebSphere的类发生冲突。当两个不同的不兼容的类加载器加载WebSphere和应用程序中的类时,就会使用该设置。
类加载器模式-- PARENT_FIRST和PARENT_LAST --用WebSphere应用服务器8.0信息中心中的类加载器描述。
人们倾向于将jars捆绑在应用程序中,从而使部署时间更长、内存消耗更高和(库)管理更加困难。
显然,开发人员更容易将所有内容保存在应用程序中,因此他们不必描述管理员必须设置哪些共享库(或OSGi存储库)。
我想不出PARENT_LAST是有帮助的,除非我们假设在应用程序中分发jars是一件好事(我会反驳这一点)。
应用程序中的jars越少,越好:
可能有更多的理由不将jars捆绑在应用程序中,从而进一步减少PARENT_LAST配置设置。
坚持使用PARENT_FIRST,直到他们告诉你他们有理由切换,当发生这种情况时,您会告诉他们答案;-)
发布于 2013-01-17 13:41:38
来自Understanding the IBM Software Developers Kit (SDK) for Java > Class loading:
委托模型通过使用与核心API相同的名称来防止来自不受信任源的代码替换受信任的核心API类。
因此,当应用程序由于版本不兼容而必须覆盖基类时,PARENT_LAST似乎是存在的,但是这样做也意味着它也会削弱安全性。
https://stackoverflow.com/questions/14355668
复制相似问题