2012-04-03 20 views
5

In Websphere, è possibile creare una "librerie condivise" e associato con le applicazioni. Vorrei sapere, in termini di posizione in classpath, qual è la posizione delle librerie condivise aggiunte? Ciò significa, voglio sapere, in caso di risorse duplicate, che avranno una "priorità" più alta da caricare, librerie condivise o l'EAR/WAR stesso.Librerie condivise di Websphere "Priorità"?

Ad esempio, supponiamo nella mia applicazione, ho una risorsa denominata appConfig.xml e sto creando una directory locale nel server delle app, inserendo un altro appConfig.xml in quella directory. Se provo a caricare le risorse (ad esempio, aprire il flusso di input) nella mia app, quale file verrà caricato?

Ho cercato per un po 'e posso trovare da nessuna parte menzionare questo. Anche se posso provarlo da solo sperimentando, vorrei conoscere il comportamento ufficiale previsto, se esiste.

Grazie mille

risposta

4

L'ordine tra i programmi di caricamento classe utilizza la cosiddetta "modalità di caricamento classi", che è "genitore prima" (e classi di applicazioni/ultime risorse) o "genitore ultimo" (con classi/risorse dell'applicazione in primo luogo). Per una singola classe caricatore applicazioni, l'ordinamento percorso classe sarà:

  1. percorsi delle classi modulo
  2. percorsi delle classi
  3. dipendenza
  4. percorsi delle classi biblioteca condivisi (Class-Path in MANIFEST.MF)

Non esiste un'opzione di configurazione per modificare l'ordine. Non penso che questo ordinamento sia esplicitamente riportato nella documentazione, ma penso anche che sia altamente improbabile che cambi. Indipendentemente da ciò, non consiglierei di fare affidamento su di esso. Ti consigliamo di assicurarti di utilizzare nomi di risorse/classi univoci all'interno di un singolo programma di caricamento classi.

+2

Inoltre, quando si hanno dubbi e si desidera sapere in che modo WAS sta utilizzando le librerie, è possibile utilizzare la vista "Console Web WebSphere -> Risoluzione dei problemi -> Visualizzatore caricatore di classi" nella console di amministrazione di WAS. – MrJames

+1

Sì, il visualizzatore del caricatore di classe può essere utile per determinare in che modo il server è riuscito a assemblare le cose. Non spiega necessariamente la logica per gli ordini. –

+0

In effetti ho letto questo prima: http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/topic/com.ibm.websphere.soafep.multiplatform.doc/info/ae/ae/ucws_rsharedlib_inst.html Vicino alla fine c'è una sezione speciale su "Usa un caricatore di classi isolato per questa libreria condivisa" e in questa sezione, l'ordine che hai dato è menzionato. Quale penso che sia un suggerimento che, per la normale libreria condivisa, non stia usando un classloader separato per le librerie condivise. Qualcuno può verificare se la mia comprensione è corretta? (In caso contrario, qual è la differenza tra loader di classe isolato e normale lib condivisa?) –

Problemi correlati