罐子LIB的,我有几个将由我的web应用中使用第三方JAR文件。这些JAR文件实际上有不同的版本。加载不同的版本,从servlet的
E.g.
版本1.0的JAR
/opt/lib/third-party-jars/1.0/3rdparty1.jar
/opt/lib/third-party-jars/1.0/3rdparty2.jar
2.0版的JAR
/opt/lib/third-party-jars/2.0/3rdparty1.jar
/opt/lib/third-party-jars/2.0/3rdparty2.jar
是否有可能加载不同的版本库的servlet得到动态加载之前?任何框架都可以在不更改现有代码的情况下做到这一点?
public class Servlet1 extends HttpServlet {
protected void doPost(....) {
MyBusinessLogic businessLogic = new MyBusinessLogic();
businessLogic.run() // My business logic spawns here which will start involving third-party classes
}
}
或者是有可能在我的业务逻辑代码之前动态加载版本1.0或2.0库被调用?我可以使用的一种方法是使用自定义类加载器和"setContextClassLoader"
,但这需要使用反射来重构我所有的业务逻辑。这将是一个巨大的努力。我试图不改变我现有的业务逻辑代码。