2017-05-30 2 views
0

J'ai créé une application Web dans Azure et importé un fichier war dans le dossier D: \ home \ site \ wwwroot \ webapps. J'utilise un plan de service d'application avec un niveau de tarification standard. Je l'ai fait les réglages pour activer Java et Tomcat dans le menu Paramètres de l'application:Tomcat dans Azure WebApp ne démarre pas

  • version Java: 8
  • java version mineure: Dernier
  • conteneur Web: Les plus récents Tomcat

Si l'option "Toujours activé" n'est pas activée, mon Tomcat ne démarre pas. Aucun processus Java n'est démarré, mon fichier war n'est pas décompressé. J'ai fait plusieurs arrêt/début de l'application et rien ne se passe. Une fois que j'ai activé "Toujours activé", le Tomcat démarre et l'application est déployée. Le paramètre "Toujours activé" n'est pas disponible dans le pack de services avec un niveau de tarification gratuit.

Est-ce que quelqu'un sait pourquoi Azure se comporte de cette façon?

+2

Est-ce que cela démarre/décompresse après votre première demande au service, ou est-ce que cela ne démarre jamais? – CtrlDot

+0

il ne démarre jamais. Lorsque je désactive l'option "Always On", le processus Java est détruit. – jmacke

+0

sonne comme un appel de support Azure ou des forums MSDN. Cela ne semble pas un comportement normal IMHO – CtrlDot

Répondre

0

J'ai essayé de reproduire le comportement comme vous l'avez dit via FTP, voici ce que j'ai observé sur Tomcat 8.5.6 comme l'a dit @GopiKolla, comme ci-dessous.

  1. Si l'option désactivée Always on, le fichier téléchargé .war ne sera pas automatiquement décompressé. Cependant, quand j'ai essayé d'accéder à l'URL de la webapp du fichier .war, il a été décompressé dans un répertoire qui a été nommé comme guerre après dix secondes supplémentaires.
  2. Si cette option est activée, tous les fichiers war seront décompressés automatiquement & immédiatement.

j'avais vérifier toutes les configurations & variables d'environnement qui comprennent les attributs autodeploy, unpackWARs & deployOnStartup, etc, ceux-ci ne changeraient pas avec l'interrupteur d'option. J'ai cherché l'explication pour ce cas à partir des documents connexes officiels de Tomcat (1, 2, 3), il n'y a rien d'information utile qui puisse l'expliquer. Juste une estimation & par mon expérience, je pense que Azure limite le cycle de vie de l'exécution via IIS pour déterminer si activer le processus httpPlatformHandler défini dans le web.config via l'option Always on.

Espérons que ça aide.

0

Merci pour vos commentaires. J'ai refait le test hier et je pense avoir compris comment fonctionne Azure WebApp. Lorsque vous téléchargez un fichier war dans le dossier webapps, même si le tomcat est configuré pour décompresser et charger la guerre, le processus java n'est pas démarré.

Il démarrera le processus Java uniquement si vous cliquez sur l'URL de votre site Web.

Si vous ne cliquez pas, aucun processus Java n'est forké. Le premier clic fourchera le processus Java pour Tomcat. Je suppose que c'est le comportement normal du travailleur IIS. Maintenant, quand je déploie une application Java, j'effectue toujours une touche sur l'URL pour m'assurer que la webapp est réellement démarrée.