在java应用程序中设置线程上下文类加载器

在java应用程序中设置线程上下文类加载器,java,Java,这是我的设想, 我有一个命令行应用程序,在运行时使用URL类加载器加载组件 在fried部署了一个基于名为rest assured的库的组件之前,一切都正常工作 在部署场景中,所有jar(包括rest-assured、gson和jackson)都加载到URL类加载器中 但是,当我创建URL类加载器并加载组件时,我并没有更改线程的上下文类加载器 放心代码依赖于上下文类加载器来检查类路径中是否有gson或Jackson 我有两个问题 我没有设置任何上下文类加载器,这样做对吗 rest-assure

这是我的设想, 我有一个命令行应用程序,在运行时使用URL类加载器加载组件

在fried部署了一个基于名为rest assured的库的组件之前,一切都正常工作

在部署场景中,所有jar(包括rest-assured、gson和jackson)都加载到URL类加载器中

但是,当我创建URL类加载器并加载组件时,我并没有更改线程的上下文类加载器

放心代码依赖于上下文类加载器来检查类路径中是否有gson或Jackson

我有两个问题

  • 我没有设置任何上下文类加载器,这样做对吗
  • rest-assured库是否正确地假设gson/Jackson类仅在上下文类加载器中可用
    我是“放心”的创造者,我也想知道这个问题的答案。如果需要,我很乐意更改代码。我希望在这个论坛上得到答案/指导。您是否可以修改代码,首先在加载ObjectMapperResolver的类加载器中查找类,并仅在未找到上下文类加载器的情况下使用上下文类加载器。我已经添加了您的建议并提交了一个新快照。在添加了以下repo之后,请根据版本2.3.4-SNAPSHOT进行尝试:sonatype oss.sonatype.org/content/repositories/snapshots/