修改的XML文件不保存java
我正在制作一个web应用程序,我需要制作一个日志。我将此日志存储为xml文件 以下是我的路径: log.xml->org.codealizer.quizme.resources Servlet->org.codealizer.quizme.Servlet 当我的应用程序运行时,它会给我一个成功的结果,但是xml文件没有被修改 这是我修改xml文件的代码:修改的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
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:/…路径访问它,但它仍然不起作用