我想使用类似Filtering Classloader的东西来防止特定的包蠕动到应用程序上下文中并且变得对Spring可见。是否有类似Websphere的Weblogic过滤类加载器
更改classloader的顺序导致各种讨厌的问题,所以我想尝试这条路线。
Websphere 6可以实现这个吗?如果没有,我可以替换我自己的应用程序classolader并自己实现过滤器吗?
我想使用类似Filtering Classloader的东西来防止特定的包蠕动到应用程序上下文中并且变得对Spring可见。是否有类似Websphere的Weblogic过滤类加载器
更改classloader的顺序导致各种讨厌的问题,所以我想尝试这条路线。
Websphere 6可以实现这个吗?如果没有,我可以替换我自己的应用程序classolader并自己实现过滤器吗?
WebSphere中没有这种过滤机制,也没有办法替换应用程序类加载器。您必须使用PARENT_LAST重写类,对不起。
bkail的回答是对的,即使在最新的公开版本(8.5.5)中,WAS也没有这样的功能。
我刚刚创建了一个RFE,要求这样的功能,使任何有兴趣在此,请为它投票这可能会增加这个正在实施的可能性:(需要IBM ID) http://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=43936
在此期间,你可以使用独立的共享库来覆盖任何特定的类(上面提到的类加载顺序控制 - 比如parent_last - 太粗糙了,因为它会影响整个应用程序或模块的类加载顺序) 在类路径中创建包含所需jar的共享库,将其配置为独立的共享库,从已部署的应用程序(或模块)中引用它。 在这里查看完整的文档 http://pic.dhe.ibm.com/infocenter/wasinfo/v8r5/topic/com.ibm.websphere.base.doc/ae/tcws_sharedlib.html
我刚刚发布相同的问题。但答案相当不令人满意。然而,我在IBM developerworks检查了Petr H的请求,并且IBM 确实实现了此功能(非常感谢Petr!):
“WebSphere Application Server V8.5.5.7(= Fixpack 7)获得了防止来自服务器类加载程序的包对应用程序可见,它在文档“ISOLATE DEPLOYED ARTIFACTS FROM OSS PACKAGES"”中提供,并记录在'Isolating open source software packages'中。
提供的链接通过配置always-protected packages
来描述机制。您基本上必须执行以下操作:
-Dcom.ibm.ws.classloader.server.alwaysProtectedPackages=org.bouncycastle.
请注意最后一个点“。”真的很重要,否则一切都会被忽略!可以通过逗号添加几个软件包“,”ProtectionMetaData.clinit: system property: com.ibm.ws.classloader.server.alwaysProtectedPackages=org.bouncycastle.
烨...我有我自己的周围广泛的样子,但没有成功。可怜... – Eddy 2011-05-17 09:57:29