2

私のWebサービスアプリケーションでは、ビジネスルールを検証するためにサードパーティのモジュールを統合する必要があります。これらのモジュールはかなり古いライブラリに付属しています。

古いライブラリは私の新しいライブラリと競合しています。

実行中のWebサービス内の分離されたスレッド/クラスローダーでサードパーティモジュールを分離する方法はありますか?

4

2 に答える 2

1

あなたが探しているのはOSGiと呼ばれています。

于 2013-02-14T19:42:53.210 に答える
0

もちろんですが、次のようにリフレクションを介して使用する必要があります。

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 */);
于 2013-02-14T19:49:11.607 に答える