java - portals - ¿Cómo funciona la implementación de Jetty en Azure App Service?
panel azure login (2)
Por lo tanto, las aplicaciones de API de Azure son un servicio PAAS, no IAAS. Puede acceder a la plataforma PaaS yoursite.scm.azurewebsites.net
, donde puede explorar el sistema de archivos en CMD o Powershell, y puede ver los procesos en ejecución. Esto puede parecer que estás en una sola VM, pero no lo estás. Los datos que ve aquí se replican en sus instancias de la aplicación API. Puede controlar cuántas instancias tiene a través de la escala de su aplicación API.
Normalmente he visto su problema con la implementación, luego ROOT está vacío (trabajando internamente para ver esto solucionado ...). El mejor método que me funciona cada vez, es detener su aplicación API, descomprimir manualmente su ROOT.war. Mueva los archivos a / ROOT /, luego inicie su aplicación API.
Simplemente puede colocar ROOT.war y dejar que el sistema lo descomprima cuando lo vuelva a encender, pero esto puede llevar a ese directorio ROOT vacío, y luego es necesario reiniciarlo.
Todo esto me tiene moviendo a Spring-Boot en su lugar. No es necesario desempacar. Simplemente configure su web.config y suelte el archivo jar.
https://docs.microsoft.com/en-us/azure/app-service-web/web-sites-java-custom-upload#springboot
Tengo una aplicación web Java que ejecuto en una instancia del Servicio de aplicaciones de Azure. Para implementarlo, uso un repositorio de Bitbucket con un archivo .war dentro de él. Cuando confirmo un nuevo archivo .war en este repositorio, se supone que el servicio lo implementará de forma automática. Sin embargo, la mayoría de las veces, tengo que reiniciar, volver a implementar o incluso cargar el archivo .war a través de FTP para que la implementación se complete con éxito.
Tengo una única instancia de Jetty que reside en este servicio, por lo tanto, mi archivo .war
se llama ROOT.war
. AFAIK, cuando se carga en el servicio (ya sea a través de Bitbucket o FTP), este archivo .war se debe desarchivar en el mismo directorio, que es /site/wwwroot/webapps
. En mi caso, esto no sucede. La aplicación web funciona con el archivo ROOT.war
sentado solo en /site/wwwroot/webapps
. Y de vez en cuando, obtengo una carpeta ROOT
en /site/wwwroot/webapps
, con dos archivos predeterminados index.jsp
y background.png
. No tengo la menor idea de lo que hace que la carpeta ROOT
aparezca con estos archivos predeterminados. La única pista que tengo es que sucedió un par de veces después de que cambié una variable de entorno.
También después de que aparezca la carpeta ROOT
con los archivos del servidor vacíos, la única forma en que puedo volver a implementar la aplicación es eliminar manualmente esta carpeta ROOT
través de FTP o la consola provista en el portal, y solo entonces mi solicitud de implementación se realizará correctamente Aplicación Web.
Entonces, si no está lo suficientemente claro, mi pregunta es ¿qué está pasando aquí? No puedo hacer nada con los comportamientos que estoy enfrentando. Siento que estoy usando este servicio de Azure a ciegas y no puedo arreglar nada cuando algo sale mal. ¿Existen recursos que puedan explicar lo que sucede en segundo plano cuando se implementa una aplicación web?
Yo tuve el mismo problema. La solución es llamar al punto final después de la implementación.
- Detenga el servicio de aplicaciones de Azure.
- Implemente el artefacto ROOT.war en la carpeta / webapps.
- Inicia el servicio de aplicaciones de Azure.
- Llame a la URL del Servicio de Aplicaciones una vez.
Los cuatro pasos son muy importantes e inicie el proceso que mencionó anteriormente (la implementación automática).
Perdí mucho tiempo averiguando cuál era el problema.