当我手动关闭、或者程序发生了很严重的错误,导致tomcat关闭时想在tomcat关闭之前,把下面xml文件修改了,state的文本值改为stopedxml内容:
<?xml version="1.0" encoding="gb2312"?>
<TASK>
<property>
<state>running</state>
<url>http://www.xici.net</url>
<keyword>南京</keyword>
<policemethod>email</policemethod>
</property>
</TASK>前提是这个文件没有被tomcat占用!
<?xml version="1.0" encoding="gb2312"?>
<TASK>
<property>
<state>running</state>
<url>http://www.xici.net</url>
<keyword>南京</keyword>
<policemethod>email</policemethod>
</property>
</TASK>前提是这个文件没有被tomcat占用!
解决方案 »
- Ext window中有一个pannel,pannel上的按钮只能提交一次
- hibernate annotation 怎么为可以为空的列加上默认值
- 统计图形的问题
- hibernate远程连接MYSQL 查询出错
- 你可能从来没有碰到过这鬼问题
- 求一个函数(或解决方案),50分!!!
- 舍入问题?
- 请问各位,如何知道在我的Tomcat启动时,mssql数据库的jdbc驱动是否已经加载??
- 120求助有关cookie的问题
- 如何将一个数组对象从Servlet传向JSP页面?
- myeclipse8+struts2.1+spring2.5+hibernate3.2+weblogic10配置二级缓存时提示错误
- 急!!请问在jsp页面显示只被选中的checkbox的值
public void run() {
// 自己的代码
}
});
这个钩子该如何用呀,麻烦你说详细点好吗?
先谢谢您!
在关闭程序的时候 监听器启用,在监听器中做修改state的操作
package xml;import java.io.File;
import org.w3c.dom.Document;
import org.w3c.dom.*;import javax.xml.parsers.DocumentBuilderFactory;
import javax.xml.parsers.DocumentBuilder;
import org.xml.sax.SAXException;
import org.xml.sax.SAXParseException;public class XMLRead { public static void main(String argv[]) {
try { DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
Document doc = docBuilder.parse(new File("test.xml")); doc.getDocumentElement().normalize();
NodeList listOfPersons = doc.getElementsByTagName("TASK"); for (int s = 0; s < listOfPersons.getLength(); s++) {
Node firstPersonNode = listOfPersons.item(s);
if (firstPersonNode.getNodeType() == Node.ELEMENT_NODE) {
Element firstPersonElement = (Element) firstPersonNode;
NodeList firstNameList = firstPersonElement.getElementsByTagName("state");
Element firstNameElement = (Element) firstNameList.item(0);
NodeList textFNList = firstNameElement.getChildNodes();//读取state节点的值
System.out.println("state : " + ((Node) textFNList.item(0)).getNodeValue().trim());
firstNameElement.setTextContent("stop");//修改state节点的值
System.out.println("state : " +firstNameElement.getTextContent());
}
}
} catch (SAXParseException err) {
System.out.println("** Parsing error" + ", line "
+ err.getLineNumber() + ", uri " + err.getSystemId());
System.out.println(" " + err.getMessage()); } catch (SAXException e) {
Exception x = e.getException();
((x == null) ? e : x).printStackTrace(); } catch (Throwable t) {
t.printStackTrace();
}
}
}