2
在我的web服務應用程序中,我必須集成第三方模塊來驗證業務規則,這些模塊隨附相當老的庫。如何隔離分離的線程/類加載器中的java模塊執行?
舊圖書館與我的新圖書館發生衝突。
有沒有辦法隔離正在運行的webservice中的分離線程/類加載器中的第三方模塊?
在我的web服務應用程序中,我必須集成第三方模塊來驗證業務規則,這些模塊隨附相當老的庫。如何隔離分離的線程/類加載器中的java模塊執行?
舊圖書館與我的新圖書館發生衝突。
有沒有辦法隔離正在運行的webservice中的分離線程/類加載器中的第三方模塊?
你在找什麼叫做OSGi。
當然,但你必須通過這樣的反射來使用它:
ClassLoader classLoader = new URLClassLoader (
new URL [] {/* Classpath or isolated module here */},
ClassLoader.getSystemClassLoader().getParent());
Class <?> isolatedModuleClass = classLoader.loadClass (
/* Full name of class from isolated module */);
Object isolatedObject =
isolatedModuleClass.
getConstructor (/* Constructor argument types */).
newInstance (/* Constructor arguments */);
Object result =
isolatedModuleClass.
getMethod (/* Method name */, /* Method parameter types */).
invoke (isolatedObject, /* Method arguments */);
對於我的需求OSGi的感覺就像打破車輪上的蝴蝶,是不是有一個更簡單的方法? – Alex 2013-02-15 14:02:18
Java 8將包含模塊化,名爲[項目拼圖](http://openjdk.java.net/projects/jigsaw/),我也會看看那裏。 – 2013-02-15 15:11:17