2009-06-03 17 views
6

Sto utilizzando FlatPack per analizzare e caricare dati da file flat. Ciò richiede il caricamento di un file di configurazione che memorizza i mapping delle colonne del file flat.Come accedere a un file di configurazione all'interno del vaso?

Ho una costante per definire la posizione del file di mapping:

private static final String MAPPING_FILE = "src/com/company/config/Maping.pzmap.xml"; 

Ho un parse (file di dati del file) metodo che realmente fa il parsing:

private void parse(File dataFile) throws FileNotFoundException, SQLException { 
     Parser parser; 

     log.info("Parsing " + dataFile.getName()); 

     FileReader mappingFileReader = new FileReader(MAPPING_FILE); 
     FileReader dataFileReader = new FileReader(dataFile); 

     parser = DefaultParserFactory.getInstance().newFixedLengthParser(mappingFileReader, dataFileReader); 
     parser.setHandlingShortLines(true); 

     DataSet dataSet = parser.parse(); 

     //process the data 
} 

Quando ho vaso up tutto e gestirlo come un barattolo - bombarda su FileReader mappingFileReader = new FileReader(MAPPING_FILE); con un FileNotFoundException. Quel file è all'interno del barattolo però.

Come ci arrivo?

Ho guardato this question e this question sull'accesso ai file all'interno di vasi ed entrambi raccomandano temporaneamente l'estrazione del file. Non voglio farlo però.

risposta

1

se non ricordo male, getResourceAsStream() può comportarsi in modo diverso a seconda del server Web il vostro webapp viene distribuito, per esempio penso che possa essere un problema quando distribuito come guerra su un'istanza di Websphere. Ma non sono sicuro se questo vale per te.

Ma non sono sicuro che tu stia cercando di risolvere il problema "corretto": se si tratta di un file di configurazione, significa che i dati dipendono correttamente? Non dipende dal codice (il tuo barattolo)? Quando cambierà il file flat, anche il tuo file di configurazione dovrà cambiare, giusto? Se questo è vero, sembra che la configurazione debba essere memorizzata meglio altrove o addirittura essere passata come parametro al tuo jar.

Ma forse non ho ben compreso il problema ...

0

Usa configurazione di Apache Commons, quindi si può leggere/XML scrittura, aggiornamento automatico, trovare file di configurazione nel percorso o barattolo, senza un sacco di fastidi .

Problemi correlati