2010-10-01 3 views
7

Ich versuche, einen Weblogic-Implementierungsplan zu verwenden, um init-param-Werte zu der web.xml-Datei einer .war-Datei eines Herstellers hinzuzufügen.So zeigen Sie die Ergebnisse eines WebLogic-Implementierungsplans an

Während ich feststelle, dass ich die WAR-Datei öffnen und nur die darin enthaltene Datei bearbeiten kann, würde ich einen Implementierungsplan bevorzugen, da ich die WAR-Datei auf mehreren Servern mit unterschiedlichen Werten bereitstellen muss für den init-param in Frage.

Ich habe viele Beispiele gefunden, wie man das online macht, aber meine Bemühungen sind Hit und Miss. Ich denke, wenn ich die Auswirkungen des Einsatzplans auf meine bereitgestellte Kriegsakte sehen könnte, wäre ich in der Lage, schnell herauszufinden, was ich falsch mache.

Gibt es eine Möglichkeit für mich, die Laufzeitbereitstellungsdeskriptoren einer weblogic (10.3.3) -Anwendung anzuzeigen, nachdem der Implementierungsplan angewendet wurde?

Antwort

3

Ich habe einige Zeit damit verbracht, dies zu untersuchen, und obwohl WL10 den WAR in einem temporären Verzeichnis entpackt, ändert es nicht die Dateien, die im Implementierungsplan an diesem Ort aufgeführt sind. Ich habe auch versucht, getResource/getResourceAsStream zu verwenden, um die gesamte web.xml zu lesen und zu finden, dass sie auch die ursprüngliche, nicht modifizierte Datei ist.

Ich habe nie herausgefunden, wie WL die Änderungen anwendet, damit sie vom ServletContext aufgenommen werden, ohne dass sie irgendwo anders sichtbar sind. Meine Vermutung ist, dass es einige Tricks verwendet, um das Laden dieser Dateien zu überschreiben und die Änderungen dynamisch anzuwenden.

Nachdem er eine Weile mit ihm zu kämpfen, ließ ich mich schließlich auf so etwas wie die folgenden die Werte der init-Parameter beim Start zur Liste aus:

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); 
     } 
    } 

(Mit slf4j für die Protokollierung)

Natürlich hilft es auch nicht, wenn etwas mit dem Einsatzplan nicht stimmt und die Werte nicht gesetzt werden, aber es ist das Beste, was ich mir vorstellen kann.

1

In 12.2.1 gibt es eine DebugDeploymentPlan Server Debug-Einstellung, wenn auf der Server meldet sich so etwas wie

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