Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

121
Views
Leer archivos de BOOT-INF/classes

Tengo una aplicación Spring Boot con una carpeta de recursos de Java:

 src | main | resources | test | test1.json test2.json ...

En la carpeta de recursos hay archivos json. Puedo leer estos archivos dentro de mi IDE (IntelliJ). Pero como un archivo JAR compilado, obtengo excepciones Nullpointer .

Spring Boot copia los archivos en: BOOT-INF/classes/test ¿Es posible leer los archivos de recursos dentro de un archivo JAR? No sé los nombres de los archivos. Entonces, primero, tengo que obtener todos los nombres de archivo y leer cada archivo.

¿Alguien tiene alguna idea?

ACTUALIZAR

He intentado esto:

 Resources[] resources = applicationContext.getResources("classpath*:**/test/*.json");

Con eso obtengo todas las rutas de archivo. Pero eso necesita demasiado tiempo. E incluso si obtengo los nombres de los archivos, ¿cómo los leería?

about 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Esto realmente funciona usando un ResourcePatternResolver

 ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(); Resource[] resources = resolver.getResources("classpath*:test/*.json"); for(Resource r: resources) { InputStream inputStream = r.getInputStream(); File somethingFile = File.createTempFile(r.getFilename(), ".cxl"); try { FileUtils.copyInputStreamToFile(inputStream, somethingFile); } finally { IOUtils.closeQuietly(inputStream); } LicenseManager.setLicenseFile(somethingFile.getAbsolutePath()); log.info("File Path is " + somethingFile.getAbsolutePath()); }
about 4 years ago · Santiago Trujillo Report

0

La siguiente solución leerá los archivos en un mapa.

Aquí lees sus recursos:

 Resource[] resources = applicationContext.getResources("classpath*:test/*.json"); for (Resource r: resources) { processResource(r); }

Aquí tramitas tus recursos:

 // you need to add a dependency (if you don't have it already) for com.fasterxml.jackson.core:jackson-databind ObjectMapper mapper = new ObjectMapper(); private void processResource(Resource resource) { try { Map<String, Object> jsonMap = mapper.readValue(resource.getInputStream(), Map.class); // do stuffs with your jsoMap } catch(Exception e){ e.printStackTrace(); } } }
about 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!