Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2009
    Messaggi
    80

    [JAVA] Accesso file xml da webapp

    Ciao a tutti.
    Ho una web application che dovrebbe accedere a un file xml di configurazione. Non sono ancora riuscito a settare il corretto path per il classLoader.Continuo ad avere l'errore di FileNOtFoundException. backOffice corrisponde alla prima cartella accessibile sotto la root.
    Per favore aiutatemi!!
    codice:
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
    final String resourceName =("\backOffice\xmlconfig\Calendar.xml");
    InputStream inputStream = classLoader.getResourceAsStream(resourceName);
    if (inputStream==null) throw new FileNotFoundException(resourceName);

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    A parte il fatto che se vuoi usare i backslash devi quotarli (perchè il backslash è esso stesso un carattere speciale, quello di quoting).
    Ma la mia domanda è: perchè ti stai complicando così tanto la vita?

    Hai almeno due possibilità per poter caricare il file XML:

    1) Specificando l'URI del file (in pratica, il percorso WEB del file)
    2) Ottenendo un oggetto File dal percorso fisico completo del documento sul server


    La classe DocumentBuilder possiede un metodo parse(String uri) che prende, appunto una URI, tipo http://tuo.indirizzo.it/backOffice/xmlconfig/Calendar.xml

    Se invece preferisci ottenere l'oggetto File, allora puoi usare il metodo parse(File file), agendo nel seguente modo:

    1) Ottenere il ServletContext
    2) Ottenere la stringa che rappresenta il percorso fisico del file, usando getRealPath()
    3) Costruire con la stringa l'oggetto file

    codice:
    ServletContext ctx = getServletContext();
    String percorsoFisico = ctx.getRealPath("/backOffice/xmlconfig/Calendar.xml");
    File fileXML = new File( percorsoFisico );
    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.