What you are looking for is called OSGi.
How to isolate java module execution in a seperated thread/classloader?
Pregunta
In my webservice application I have to integrate a third party module to validate business rules, these modules are shipped with rather old libraries.
The old libraries are in conflict with my newer one.
Is there a way to isolate the third party module in a seperated thread/classloader within the running webservice?
Solución
Otros consejos
Sure, but you will have to use it via reflection like this:
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 */);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow