2010-10-01 6 views
7

J'essaie d'utiliser un plan de déploiement weblogic pour ajouter des valeurs init-param au fichier web.xml d'un fichier .war fourni par le fournisseur. Bien que je me rende compte que je puisse ouvrir le fichier .war et simplement modifier le fichier à l'intérieur, je préférerais utiliser un plan de déploiement pour y parvenir car je devrai déployer le fichier .war sur plusieurs serveurs avec des valeurs différentes pour le init-param en question.Comment afficher les résultats d'un plan de déploiement WebLogic

J'ai trouvé de nombreux exemples de la façon de le faire en ligne, mais mes efforts sont aléatoires. Je pense que si je pouvais voir l'impact du plan de déploiement sur mon fichier de guerre déployé, je serais capable de comprendre rapidement ce que je fais de mal.

Existe-t-il un moyen d'afficher les descripteurs de déploiement d'exécution d'une application weblogic (10.3.3) après l'application du plan de déploiement?

Répondre

3

J'ai passé du temps à enquêter sur ce problème et même si WL10 décompresse le fichier WAR dans un répertoire temporaire, il ne modifie pas les fichiers répertoriés dans le plan de déploiement à cet emplacement. J'ai également essayé d'utiliser getResource/getResourceAsStream pour lire l'intégralité du fichier web.xml, et j'ai trouvé que c'était aussi le fichier original non modifié.

Je n'ai jamais compris comment WL applique les changements pour qu'ils soient captés par le ServletContext sans qu'ils soient visibles ailleurs. Je suppose que c'est en utilisant une supercherie pour remplacer le chargement de ces fichiers et appliquer les changements de manière dynamique.

Après avoir combattu avec elle pendant un certain temps, j'ai finalement installé sur quelque chose comme ce qui suit à la liste les valeurs des paramètres d'initialisation au démarrage:

if (log.isTraceEnabled()) { 
     final Enumeration<String> names = context.getInitParameterNames(); 
     while (names.hasMoreElements()) { 
      final String key = names.nextElement(); 
      final String value = context.getInitParameter(key); 
      log.trace("Init Parameter '{}' = '{}'", key, value); 
     } 
    } 

(aide slf4j pour l'enregistrement)

Bien sûr, cela n'aide pas un peu s'il y a un problème avec le plan de déploiement et que les valeurs ne sont pas définies, mais c'est le meilleur que je puisse trouver.

1

En 12.2.1 il y a un paramètre de débogage DebugDeploymentPlan Server, si, le serveur enregistre quelque chose comme

<After applying the overrides from the deployment plan, the descriptor "META-INF/ejb-jar.xml" is: 
Questions connexes