我想使用類似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