¿Cómo desplegar una aplicación en Heroku utilizando el JDK 11?
El proceso de desplegar aplicaciones en Heroku puede parecer complicado, pero cuando se sigue una guía paso a paso, se convierte en una tarea sencilla y directa. Aquí, te explicaremos cómo desplegar una aplicación en Heroku, utilizando una versión específica del JDK, con ejemplos precisos para facilitar el proceso.
¿Cómo preparar el entorno de Heroku?
Verificar versiones de JDK:
Heroku utiliza por defecto la versión 8 del JDK de Java, mientras que nuestra API está construida con la versión 11. Para indicarle a Heroku que use esta versión, necesitamos crear un archivo llamado system.properties en la raíz del proyecto.
java.runtime.version=11
Configurar base de datos:
Asegúrate de que tu base de datos PostgreSQL esté correctamente configurada en Heroku, con tablas y datos iniciales.
¿Cómo adaptar la configuración de Spring Boot?
Cambia el perfil activo de desarrollo a uno de producción, modificando el archivo de configuración. Sin embargo, no modifiques application.properties directamente. Define un archivo Procfile en la raíz del proyecto:
Aquí, tu-aplicacion.jar es el nombre del archivo jar generado.
¿Cómo realizar el despliegue automático con Git?
Hacer push de los cambios:
Utiliza la terminal o tu entorno de desarrollo para hacer push de los archivos system.properties y Procfile a la rama master de tu repositorio en GitHub u otro repositorio Git conectado a Heroku.
Ejecuta el comando git push heroku master para iniciar el despliegue. Heroku tomará automáticamente el proyecto desde la rama master, lo compilará, generará el jar correspondiente y desplegará la aplicación.
¿Cómo verificar el despliegue y autenticación?
Una vez desplegada, puedes comprobar si tu aplicación responde correctamente.
URL y context path:
El acceso inicial a la URL raíz puede devolver un error 404, ya que no hay contenido en esa ubicación por defecto.
Navega a la ruta definida de tu aplicación para ver la API en acción.
Probar con Postman:
Para probar la funcionalidad de tu API, usa Postman para enviar solicitudes y verificar que los datos se obtienen correctamente desde la base de datos de Heroku. Asegúrate de que las configuraciones de autenticación estén correctamente establecidas.
Este enfoque te permitirá controlar cada paso hacia el despliegue exitoso de una aplicación Java en Heroku, garantizando que todo esté configurado para funcionar de acuerdo con tus necesidades específicas. Recuerda que Heroku simplifica el proceso de deployment, permitiendo que te enfoques en el desarrollo y la funcionalidad de tu aplicación. ¡Adelante y sigue aprendiendo!
Hola tengo un error al ejecutar "git push heroku master" , el error radica en que está instalando el jdk 1.8, cuando desde el inicio lo tengo configurado con jdk 11, en que parte dle proyecto puedo revisar de dónde está tomando ese jdk 1.8 .
Por cierto, ya fui a la ruta File/Project Strcuture/Project y tengo perfecto el JDK 11, agradezco si alguien me puede ayudar de alguna manera, muchas gracias.
Intenta crear un archivo llamado system.properties en la raíz de tu proyecto con este contenido java.runtime.version=11. Hazle commit al repositorio y le vuelves a intentar dar push a heroku.
Te dejo el link la documentación de heroku por si le quieres dar una mirada.
Tal cual lo que dice @elbunuelo debería de funcionar. El archivo system.properties debe estar en la raíz del proyecto junto (donde está el build.gradle). Mira mi repositorio.
Por si les sale un error de cors cuando esten consumiendo su api deben agregar la anotacion @CrossOrigin en cada controlador arriba de donde inicia la clase... y tambien se puedne agregar de forma global.
.
https://spring.io/guides/gs/rest-service-cors/
Tengo una consulta en Heroku podemos tener mas de una aplicacion publicada en una licencia gratis o solo deja tener una nada mas, ya que estaba intentando subir una nueva api al servicio.
y la parte de Seguridad, no la vi en todo el curso ?
Heroku ya no es gratis como antes, pero hay muchas más opciones, aquí te dejo una que yo use:
railway
my proyecto
Llegué a tener varios problemas al hacer el despliegue sobre todo en application.properties y con el gradle asi que si tienen problemas con eso, aquí les dejo mi repo y un video que me ayudo I'm video
¡Qué gran tutorial sobre cómo desplegar una aplicación Spring Boot en Heroku! Gracias por compartir tus conocimientos y por ayudarnos a aprender cómo implementar nuestras aplicaciones en un entorno de producción en la nube. Esta es una habilidad valiosa y relevante para cualquier desarrollador de hoy en día, y apreciamos tu experiencia y enseñanza en este tema. ¡Gracias por tu trabajo y por hacer que el aprendizaje sea accesible y emocionante! 👨🏫💻🌟
Despliego mi app sin problemas pero cuando trato de consumir cualquier endpoint o swagger me da timeout:
2020-12-14T00:23:33.026436+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 90 seconds of launch
2020-12-14T00:23:33.049360+00:00 heroku[web.1]: Stopping process with SIGKILL
2020-12-14T00:23:33.244126+00:00 heroku[web.1]: Process exited with status 137
Estoy teniendo el mismo problema, ¿encontraste alguna solucion?
¿Alguien sabe como generar el bearer token que ocupan en el api?
Según yo no vimos nada de autenticación. 🤔
me da un poco de vergüenza... Hace un par de meses termina este curso y decidí crear una aplicación Spring para mi pagina
El problema es cuando quiero desplegar la aplicación, parece que no es capaz de encontrar .jar
Y en local funciona todo perfecto, desde git bash con el mismo comando q tengo indicado en el procfile
Ahy me indica que no pudo encontrar el jar
Ejecutando el mismo comando q en el procfile en local funciona pero fuera no