【问题标题】:The resource path has been normalized to [null]资源路径已规范化为 [null]
【发布时间】:2017-12-11 21:13:06
【问题描述】:

我正在尝试制作 servlet,它解析 xml 并从中打印信息。

这是我的代码部分:

    public void doGet(HttpServletRequest req, HttpServletResponse res)
        throws ServletException, IOException  {

    List<Inventory> list = null;
    DOMParser domParser = new DOMParser();
    pw = res.getWriter();
    try {
        list = domParser.parse(getServletContext().getResourceAsStream("../SportInventory.xml"));
    } catch (ParserConfigurationException | SAXException e) {
        return;
    }
    pw.println("<HTML><HEAD><TITLE>title</TITLE></HEAD><BODY>");
    pw.println("<p>done</p>");
    pw.println("</BODY></HTML>");
    pw.close();
}

这是目录结构: https://imgur.com/4bmwdMC

我的xml中的schemaLocation:

xsi:schemaLocation="http://nure.ua/sportInventory sportInventory.xsd"

因此我有下一个: https://imgur.com/sCzSxFc

之前感谢您的帮助,并为我的英语不好感到抱歉。

【问题讨论】:

    标签: java xml apache servlets


    【解决方案1】:

    试试这个:

    list = domParser.parse(getServletContext().getResourceAsStream("/SportInventory.xml"))
    

    文件位置必须以“/”开头。

    【讨论】:

    • 试试我编辑的解决方案。我从路径中删除“..”。当它不起作用时,请检查 jar/war 文件中是否存在 xml 文件。 xml文件应该在jar的根目录下。
    • 现在它抛出 SAXParseException。看起来主题问题已经解决了很多:)
    猜你喜欢
    • 2022-08-11
    • 2015-02-03
    • 1970-01-01
    • 2015-07-21
    • 1970-01-01
    • 2010-11-17
    • 2010-10-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多