getSystemResourceAsStream在解析XML时返回null

时间:2014-05-18 20:28:34

标签: java xml parsing illegalargumentexception

我尝试从本地XML文件创建文档对象。

这部分代码:

    DocumentBuilderFactory factoria = DocumentBuilderFactory.newInstance();
    DocumentBuilder constructor = factoria.newDocumentBuilder();
    Document documento = constructor.parse(ClassLoader.getSystemResourceAsStream(URLXML));

导致以下异常:

  

线程中的异常" AWT-EventQueue-0"   java.lang.IllegalArgumentException:InputStream不能为null   javax.xml.parsers.DocumentBuilder.parse(未知来源)

getSystemResourceAsStream()只有在无法找到源时才会返回null,并且我已经检查过文件url是否正确存储在字符串中(它的C:\文件\ n) .xml,这是文件的正确位置。)

那么失败了什么?我做错了什么?

2 个答案:

答案 0 :(得分:0)

将file.xml保留在classpath中。如果您的Web应用程序是Web应用程序,请将其保存在WEB-INF中,或将其保存在执行独立应用程序的java命令的文件夹中。

答案 1 :(得分:-1)

我使用getSystemResourceAsStream遇到了同样的错误,所以不使用我使用过的:

parser.parse(new File(""), handler);

它工作正常。