如果在WebApplication中使用ClassLoader.getSystemResource访问文件,则放置文件的位置

时间:2012-02-09 13:13:03

标签: java

我在代码中使用了一个第三方jar。在jar文件中,在其中一个类中,当我使用反编译器打开类时,会写下面的代码:

 java.net.URL fileURL = ClassLoader.getSystemResource("SOAPConfig.xml");

现在我在我的webapplication中使用它,我应该在哪里放置这个SOAPConfig.xml,以便找到fileURL。

注意:我已尝试将此XML放在WEB-INF / classes文件夹中。但它没有用。我们将非常感谢您的帮助。

另外:在您给出的解释中,它告诉我不要以这种方式在第三方jar中使用此代码段... 具体用法是什么本声明

1 个答案:

答案 0 :(得分:2)

ClassLoader.getSystemResource将从系统类加载器加载资源,该类加载器使用从命令行启动的应用程序的类路径。应用程序在运行时创建的任何类加载器(即查看WEB-INF/classes的类加载器)都不在系统类路径中。

你需要

  1. 查看启动服务器的脚本,找出那里的类路径中的哪些目录,并将SOAPConfig.xml放在其中一个目录中。如有必要,请更改脚本中的类路径,以查找刚用于配置文件的单独目录。
  2. 追踪在图书馆中使用ClassLoader.getSystemResource的人,将他们直接踢到坚果中,并告诉他们永远不要再这样做了。