使用 Thread Context ClassLoader 从类路径读取 WSDL



我正在使用一个Web服务,我将WSDL放在目录中WEB-INF/classes类路径中。我在雄猫服务器中运行以下代码。

第一种方法

static {
    URL WSDL_LOC=WSClient.class.getClass().getClassLoader().getResource("Data.wsdl");
    System.out.println("Location here is : " + WSDL_LOC);
  }

第二种方法

static {
    URL WSDL_LOC =   Thread.currentThread().getContextClassLoader().getResource("Data.wsdl");
    System.out.println("Location here is : " + WSDL_LOC);
  }

当我在 tomcat 内部运行我的战争时,第一种方法在控制台上打印null,而第二种控制台实际上打印正确。我只是想知道为什么会这样,以及这样做的正确方法是什么。

我的期望是,使用对WSClient的静态引用的第一个引用使用系统类加载器,而使用当前线程的第二个引用正在命中tomcat的Web应用程序类加载器。

阅读此链接 线程的上下文类加载器和普通类加载器之间的区别

相关内容

  • 没有找到相关文章

最新更新