我想写一个位于jboss的conf目录下的xml文件。
我这样打开它:
public void initialiserXml() {
sxb = new SAXBuilder();
try {
String fileXml= System.getProperty("jboss.server.home.dir").concat("/").concat("/conf").concat("/exempleMessage.xml");
System.out.println("Fichier xml " +fileXml);
document = sxb.build(fileXml);
racine = document.getRootElement();
System.out.println("Fichier Xml trouvé");
} catch (FileNotFoundException e) {
System.err.println("Aucun fichier XML trouvé");
} catch (JDOMException e) {
System.err.println("Fichier XML mal construit");
} catch (IOException e) {
System.err.println("Impossible d ' ouvrir le fichier XML");
}
}
并且在修改之后我写了这样的改变
public void enregistreFichier()
{
XMLOutputter sortie = new XMLOutputter(Format.getPrettyFormat());
try {
sortie.output(document, new FileOutputStream(fileXml));
} catch (FileNotFoundException e) {
System.err.println("Fichier XML source non trouvé");
} catch (IOException e) {
System.err.println("Impossible d ' ecrire dans le fichier XML");
}
}
这适用于我的测试环境,但是当我在生产环境(Linux服务器)上测试它时,它在以后不再有效 我传递sortie.output(document,new FileOutputStream(fileXml)); (FileNotFoundException异常)
我不明白,当我用saxbuilder打开它时找到了我的文件,但是当我写入时,我有一个filenotfoundexception
如何解决问题?
非常感谢
答案 0 :(得分:0)
当您没有文件的所有必需权限时,也会抛出FileNotFoundException。在这种情况下,您可能缺少/conf/exempleMessage.xml文件的写入权限
你应该通过命令“ps -ef | grep jboss”检查哪个用户正在运行jboss,它会给你一个列表,所有进程女巫名都包含字符串jboss。在此之后,您可以通过“chown:/conf/exempleMessage.xml”
将文件的所有权更改为该用户