2011-08-02 44 views
0

文件我想在位於的JBoss conf目錄下的XML文件來寫。寫在JBoss的目錄

我打開它是這樣的:

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(文件,新的FileOutputStream中(fileXml)); (FileNotFoundException異常)

我不明白,當我用SAXBuilder的打開我的文件被發現,但是當我寫,我有一個FileNotFoundException異常

如何解決這個問題嗎?

非常感謝你

回答

0

FileNotFoundException異常,也會引發,當你不具備所有必需的權限對文件。在這種情況下,您可能會缺少來自/conf/exempleMessage.xml文件的寫權限

您應該通過發出命令「ps -ef | grep jboss」來檢查哪個用戶正在運行jboss,它會給出一個列表所有進程名稱包含字符串jboss。在這之後,你通過修改文件到用戶的所有權「CHOWN:/conf/exempleMessage.xml」

+0

您應該還記得,在Linux中,如果你想創建文件(當你寫的文件,它可以意味着新的文件被創建),你還需要寫'conf'目錄的權限。 –

+0

非常感謝!的確,這是一個許可問題。我已授權訪問該文件,並使用chmod和chown命令conf目錄下的,現在,它完美的作品!非常感謝你 – user799698