2009-06-03 25 views
6

Estoy usando FlatPack para analizar y cargar datos de archivos sin formato. Esto requiere cargar un archivo de configuración que almacena las asignaciones de las columnas del archivo plano.¿Cómo accedo a un archivo de configuración dentro del contenedor?

que tienen una constante para definir la ubicación del archivo de asignación:

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

Tengo un análisis sintáctico (ArchivoDeDatos Archivo) método que realmente hace el análisis:

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 
} 

Cuando JAR hasta todo y ejecutarlo como una jarra: explota en FileReader mappingFileReader = new FileReader(MAPPING_FILE); con un FileNotFoundException. Ese archivo está dentro del contenedor, sin embargo.

¿Cómo puedo llegar?

He visto this question y this question para acceder a archivos dentro de jar y ambos recomiendan extraer temporalmente el archivo. Aunque no quiero hacer eso.

Respuesta

1

si no recuerdo mal, getResourceAsStream() puede comportarse de forma diferente en función del servidor web se despliega su aplicación web, por ejemplo, creo que puede ser una problema cuando se implementa como una guerra en una instancia de Websphere. Pero no estoy seguro de si esto se aplica a ti.

Pero no estoy seguro de que estés tratando de resolver el problema "correcto": si se trata de un archivo de configuración, eso significa que depende de los datos ¿no? No depende del código (su jar)? Cuando el archivo plano cambie, tu archivo de configuración también tendrá que cambiar, ¿verdad? Si esto es cierto, parece que la configuración debería almacenarse mejor en otro lugar, o incluso pasarla como parámetro a su jar.

Pero tal vez no he entendido completamente su problema ...

0

Uso de configuración de Apache Commons, a continuación, se puede leer/escribir XML, actualización automática, encontrar el archivo de configuración de ruta de acceso o tarro, sin un montón de problemas .

Cuestiones relacionadas