es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cuál debería ser la ruta exacta al archivo jar en el archivo Procfile para Spring Boot?

Estoy intentando desplegar una aplicación Spring Boot en Heroku (también utilizando un complemento JawsDB MySQL).
Después de hacer push a git y también a Heroku (git push heroku mybranch:master) y aunque la compilación siempre es exitosa, siempre recibo un error:
“at=error code=H14 desc=”No web processes running””.
Entiendo que esto significa que mi Procfile está incorrecto. El nombre del archivo está escrito correctamente, no tiene extensión y he indicado lo siguiente:
“web: java -jar C:/Users/Myname/Documents/Programming/appFolder/target/*.jar”
La línea anterior también aparece en heroku.com/resources -> free Dynos, por lo que se recogen los contenidos del Procfile.
Busqué en SO y otros lugares y encontré preguntas como https://stackoverflow.com/questions/69035291/heroku-sprinboot-deployment-is-sucess-but-status-is-503-service-unavailable y https://stackoverflow.com/questions/61006421/what-to-write-in-the-procfile, pero no encontré una respuesta final y práctica a mi pregunta.
Mi pregunta es:

1.¿A qué jar estoy dirigiendo a Heroku? Heroku construye el jar y no aparece en mi appFolder/target, solo un jar viejo que construí manualmente a través del comando “package” en eclipse. Es por eso que escribí *.jar (en mi desesperación), ya que quiero que recoja cualquier jar que encuentre, ya que realmente no sé cómo se supone que debe llamarse…

Además, ¿cuál sería el patrón correcto (barras diagonales o invertidas? ¿Comenzando por C:/?)?

2.¿Se supone que debo construir el jar yo mismo? Y si es así, ¿para qué sirve la construcción de Heroku?

  1. ¿Dónde se almacena el jar de Heroku si quiero acceder a él?
    Gracias de antemano.
Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Solución para desplegar una aplicación Spring Boot en Heroku

    1. Procfile

    El mensaje de error “No hay procesos web en ejecución” suele ocurrir cuando el Procfile no especifica ningún proceso web. En su caso, el Procfile parece correcto. Sin embargo, debe reemplazar la ruta con una ruta relativa desde la raíz de su proyecto, así:

    web: java -jar target/*.jar

    2. Buildpacks

    Necesita especificar los buildpacks para que su aplicación funcione correctamente. Heroku detecta automáticamente que está utilizando Java pero no Spring Boot. Agregue los siguientes buildpacks:

    $ heroku buildpacks:add heroku/java
    $ heroku buildpacks:add heroku/jvm
    

    3. No crear JAR manualmente

    No es necesario crear un archivo JAR manualmente. Heroku construye el archivo JAR utilizando Maven cuando envía el código a su plataforma. Heroku construye la aplicación en el dyno que también inicia el proceso web. Por lo tanto, es esencial especificar un proceso web en el Procfile.

    Conclusión

    En resumen, los pasos necesarios para desplegar una aplicación Spring Boot en Heroku son:

    1. Asegúrese de que su Procfile especifique un proceso web.
    2. Especifique los buildpacks para su aplicación.
    3. No cree un archivo JAR manualmente; deje que Heroku lo construya.

    Esperamos que esto resuelva el problema y despliegue con éxito su aplicación Spring Boot en Heroku.

Comments are closed.