Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.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
Java JSP:刷新文件的代码_Java_Xml_Jsp - Fatal编程技术网

Java JSP:刷新文件的代码

Java JSP:刷新文件的代码,java,xml,jsp,Java,Xml,Jsp,目前我正在使用XML、JSP和Activiti工作流引擎。在我的项目中,我有以下过程: 员工提交JSP表单 提交表单时,我将更新xml文件以更改标记的名称。例如,从:签署文档到签署文档1。这里的1表示数据库中数据的ID 文件成功更新后,程序将根据我更新的XML文件直接部署Activiti工作流引擎进程 我已经成功地更新了xml文件并部署了流程,但是当我对xml标记的名称有了一些问题时。问题是: 在XML文件成功更新后,我的程序不会直接使用最新的文件,而是使用旧的文件。例如,在我更新XML文件之前

目前我正在使用XML、JSP和Activiti工作流引擎。在我的项目中,我有以下过程:

员工提交JSP表单 提交表单时,我将更新xml文件以更改标记的名称。例如,从:签署文档到签署文档1。这里的1表示数据库中数据的ID 文件成功更新后,程序将根据我更新的XML文件直接部署Activiti工作流引擎进程 我已经成功地更新了xml文件并部署了流程,但是当我对xml标记的名称有了一些问题时。问题是:

在XML文件成功更新后,我的程序不会直接使用最新的文件,而是使用旧的文件。例如,在我更新XML文件之前,标记的名称是Sign Form,而在我更新文件之后,文件上的标记名称将成为Sign Form 1。然而,当我检查我的activiti数据库时,它显示activiti仍然使用标记名为Sign Form而不是Sign Form 1的xml文件 我猜是因为我需要在运行部署之前先刷新XML文件。但我不知道如何在JSP或Java上这样做。有人能帮我吗?谢谢

这是我的密码:

try {
            String filepath = "path/to/the/filename.bpmn20.xml";
            DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance();
            DocumentBuilder docBuilder = docFactory.newDocumentBuilder();
            Document doc = docBuilder.parse(filepath);

            // Get the process element by tag name directly
            Node userTask = doc.getElementsByTagName("userTask").item(0);

            // update userTask attribute
            NamedNodeMap attr = userTask.getAttributes();
            Node nodeAttr = attr.getNamedItem("name");
            nodeAttr.setTextContent("Review and Sign Form "+id);

            // write the content into xml file
            TransformerFactory transformerFactory = TransformerFactory.newInstance();
            Transformer transformer = transformerFactory.newTransformer();
            DOMSource source = new DOMSource(doc);
            StreamResult result = new StreamResult(new File(filepath));
            transformer.transform(source, result);

            System.out.println("Done");

           } catch (ParserConfigurationException pce) {
            pce.printStackTrace();
           } catch (TransformerException tfe) {
            tfe.printStackTrace();
           } catch (IOException ioe) {
            ioe.printStackTrace();
           } catch (SAXException sae) {
            sae.printStackTrace();
           }

您可以读取文件,替换XML内容的字符串,然后将修改后的内容写回XML


参考资料:

如何提交更改的内容?能否发布代码,说明如何更新数据库中的xml?我认为我的xml文件没有问题。但是,在我的java代码中:这是我的java代码:ch.changeBOid+1;dp.1过程;ch.changeBOid+1用于更改XML文件,dp.deployProcess用于部署将使用我的XML文件的进程,我认为问题是我试图在不刷新XML文件的情况下使用XML文件,因此编译器没有注意到更改。