【问题标题】:java.net.MalformedURLException: no protocol with javax.xml.stream.XMLStreamException while using JAXBjava.net.MalformedURLException:使用 JAXB 时没有带有 javax.xml.stream.XMLStreamException 的协议
【发布时间】:2014-02-24 09:35:06
【问题描述】:

我正在使用 JAXB 来解组 XML 文档。在解析 XML 时,它会抛出一个用 XMLStreamException 包装的 MalformedURLException。我的理解是,在创建 XMLStreamReader 对象本身时,它会引发异常。请问有什么建议吗?

我正在使用的代码sn-p:

    XMLInputFactory xif = XMLInputFactory.newFactory();      
    XMLResolver resolver = new XMLResolver(); //to capture systemID, base URI etc.
    xif.setXMLResolver(resolver);

    //Throws MalformedURLException  while processing the below line
    XMLStreamReader xsr = xif.createXMLStreamReader(new StreamSource(fileToProcess));

    JAXBContext jaxbContext = JAXBContext.newInstance(MyPackage.MyClassName.class);

这是异常跟踪:

     class javax.xml.stream.XMLStreamException
     javax.xml.stream.XMLStreamException: java.net.MalformedURLException: no protocol:       [XML_FILEPATH/XML_FILE_NAME]

fileToProcess 是一个包含绝对路径的字符串,例如 /home/project/input/myproject.xml

运行时 JDK 为 1.7。我缺少任何签名/协议吗?

谢谢, 巴斯卡

【问题讨论】:

    标签: xml xml-parsing jaxb malformedurlexception xmlstreamreader


    【解决方案1】:

    试试这个:

    XMLStreamReader streamReader = factory.createXMLStreamReader(
    new FileReader("data\\test.xml"));
    

    【讨论】:

    • 成功了!在 unix 环境中,我已经给出了文件的绝对路径。
    猜你喜欢
    • 2010-12-14
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 2017-05-13
    • 2014-05-26
    • 1970-01-01
    • 2016-01-15
    相关资源
    最近更新 更多