2010-10-01 11 views
7

Sto provando a utilizzare un piano di distribuzione weblogic per aggiungere valori di init-param a un file web.xml del file .war fornito dal fornitore.Come visualizzare i risultati di un piano di distribuzione WebLogic

Mentre mi rendo conto che posso aprire il file .war e modificare semplicemente il file all'interno, preferirei utilizzare un piano di implementazione per realizzare ciò poiché avrò bisogno di distribuire il file .war su più server con valori diversi per l'init-param in questione.

Ho trovato molti esempi di come farlo on-line, ma i miei sforzi sono incostante. Penso che se potessi vedere l'impatto del piano di implementazione sul mio file di guerra, sarei in grado di capire rapidamente cosa sto facendo male.

Esiste un modo per visualizzare i descrittori di distribuzione del runtime di un'applicazione weblogic (10.3.3) dopo l'applicazione del piano di implementazione?

risposta

3

Ho passato un po 'di tempo a indagare su questo problema, e sebbene WL10 decomprima WAR in una directory temporanea, non modifica i file elencati nel piano di distribuzione in quella posizione. Ho anche provato a utilizzare getResource/getResourceAsStream per leggere l'intero file web.xml e ho trovato che fosse anche il file originale non modificato.

Non ho mai capito come WL applica le modifiche in modo che vengano rilevate dal ServletContext senza che siano visibili da nessun'altra parte. La mia ipotesi è che sta usando alcuni trucchi per scavalcare il caricamento di quei file e applicare le modifiche in modo dinamico.

Dopo aver combattuto con lui per un po ', alla fine ho optato per qualcosa di simile a quanto segue per elencare i valori dei parametri di inizializzazione all'avvio:

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

(Usando slf4j per la registrazione)

Ovviamente non aiuta un po 'se c'è qualcosa di sbagliato nel piano di implementazione e i valori non vengono impostati, ma è il meglio che potrei inventare.

1

In 12.2.1 c'è un ambiente di debug DebugDeploymentPlan Server, se acceso, il server registra qualcosa come

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