Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
修改的XML文件不保存java_Java_Xml_Servlets_Dom_Xml Parsing - Fatal编程技术网

修改的XML文件不保存java

修改的XML文件不保存java,java,xml,servlets,dom,xml-parsing,Java,Xml,Servlets,Dom,Xml Parsing,我正在制作一个web应用程序,我需要制作一个日志。我将此日志存储为xml文件 以下是我的路径: log.xml->org.codealizer.quizme.resources Servlet->org.codealizer.quizme.Servlet 当我的应用程序运行时,它会给我一个成功的结果,但是xml文件没有被修改 这是我修改xml文件的代码: private void createLog(HttpServletRequest request, HttpServletR

我正在制作一个web应用程序,我需要制作一个日志。我将此日志存储为xml文件

以下是我的路径:

log.xml->org.codealizer.quizme.resources

Servlet->org.codealizer.quizme.Servlet

当我的应用程序运行时,它会给我一个成功的结果,但是xml文件没有被修改

这是我修改xml文件的代码:

private void createLog(HttpServletRequest request,
        HttpServletResponse response, PrintWriter out) {
    String ipAddress = request.getRemoteAddr();
    int port = request.getRemotePort();
    String clientInformation = request.getHeader("user-agent");

    try {
        DocumentBuilderFactory factory = DocumentBuilderFactory
                .newInstance();
        DocumentBuilder dBuilder = factory.newDocumentBuilder();

        Document doc = dBuilder.parse(getClass().getResourceAsStream(
                "/org/codealizer/quizme/resources/log.xml"));

        doc.getDocumentElement().normalize();

        Node log = doc.getFirstChild();

        Element item = doc.createElement("item");

        Element time = doc.createElement("time");
        time.appendChild(doc.createTextNode("" + System.currentTimeMillis()));
        item.appendChild(time);

        Element access = doc.createElement("access");
        access.appendChild(doc.createTextNode(getClass().getName()));
        item.appendChild(access);

        Element address = doc.createElement("address");
        address.appendChild(doc.createTextNode(ipAddress + ":" + port));
        item.appendChild(address);

        Element client = doc.createElement("client");
        client.appendChild(doc.createTextNode(clientInformation));
        item.appendChild(client);

        log.appendChild(item);

        // Update
        TransformerFactory transformerFactory = TransformerFactory
                .newInstance();
        Transformer transformer = transformerFactory.newTransformer();
        DOMSource source = new DOMSource(doc);
        StreamResult result = new StreamResult(getClass().getResource(
                "/org/codealizer/quizme/resources/log.xml").getFile());

        // Output to console for testing
        // StreamResult result = new StreamResult(System.out);

        transformer.transform(source, result);

    } catch (SAXException | IOException | ParserConfigurationException
            | TransformerException e) {
        out.println(e.getMessage());
    }
这是我当前的log.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<log></log>


有人能帮我解决这个问题吗?Thx很多:)

我认为没有引发异常?您在哪个上下文中执行此代码?(IDE,jar文件?)不确定,但我想说问题来自
getClass().getResource(“/org/codealizer/quizme/resources/log.xml”)
。您是否可以尝试用
新文件(“…path…/org/codealizer/quizme/resources/log.xml”)替换此文件
?问题是,这在您的IDE中不起作用(因为您不能在jar文件中修改源文件)。我尝试将xml文件放在我的webapp的WEB-INF文件夹中,并使用C:/…路径访问它,但它仍然不起作用