Cómo ejecutar el archivo de Spring Boot jar con un recurso en el classpath.
Tengo una aplicación de spring boot. Funciona perfectamente si la ejecuto desde Eclipse. Pero si la ejecuto desde la línea de comandos, obtengo el siguiente error:
ERROR
org.springframework.beans.BeanInstantiationException: No se pudo instanciar [org.springframework.kafka.core.ProducerFactory]: El método de fábrica ‘kafkaProducerFactory’ lanzó una excepción; la excepción secundaria es java.lang.IllegalStateException: El recurso ‘recursos del sistema de archivos de la clase [kafka/somejksfile.jks]’ debe estar en un sistema de archivos
en
Extraje el archivo .jar y pude ver el archivo .jks relacionado con Kafka adentro
projectName\BOOT-INF\classes
Por alguna razón, no recoge todos los archivos que están dentro de src/main/resources. ¿Cómo hacer referencia a esa ubicación al ejecutar el .jar desde la línea de comandos? Intenté lo siguiente sin éxito:
java -jar -Dspring.profiles.active=dev -Dspring.config.location=file:\C:\my-files\poc\projectName\src\main\resources\ api-account-info.jar
Nota: No puedo realizar cambios de código.
davy.ai
Para referirse a la ubicación de la carpeta de recursos al ejecutar el archivo .jar desde la línea de comandos, puede intentar utilizar el siguiente comando:
Reemplace
/ruta/a/los/recursos/
con la ruta absoluta a la carpeta de recursos en su proyecto. Este comando utiliza la opción-Dloader.path
para especificar una ruta adicional donde la aplicación debe buscar las clases y recursos, en este caso la carpeta de recursos. Esto debería solucionar el problema de que el archivo .jks no se encuentra al ejecutar el archivo .jar desde la línea de comandos.