自定义类加载器中的第三方依赖项(SpringBoot,tomcat)。

时间:2015-05-29 15:44:11

标签: java tomcat spring-boot classloader urlclassloader

我在tomcat上托管一个SpringBoot1.2.3应用程序,它动态编译和运行java类。

我有一个自定义类加载器,它使用Java Compiler Api在运行时编译和加载源代码。

现在我想在可编译的代码中允许第三方依赖。

我尝试使用URLClassLoader从jar文件加载依赖项。但是,部署在tomcat上时URLClassLoader不起作用,可能tomcat的安全策略禁止这样做。

我还尝试在应用程序本身中添加依赖项并使用自定义类加载器(它再次无法工作)共享它

e.g。 如果我想动态编译和运行以下代码

package a.test;

import a.AClass;
import org.junit.Test;
import static org.hamcrest.CoreMatchers.is;
import static org.junit.Assert.assertThat;

public class ATestClass {
  @Test
  public void testMe() {
    assertThat(1, is(new a.AClass().getOne()));
  }

  @Test
  public void testMeAgain() {
    assertThat(1, is(new AClass().getTwo()));
  }
}

现在,我如何为编译提供JUnit依赖项?

0 个答案:

没有答案