Domanda

sto distribuzione di un file EAR al server IBM WebSpehre 6.1 - voglio essere in grado di accedere al nome dell'applicazione EAR che viene memorizzato nel file di distribuzione in 'display-name'. Guardando attraverso pila messaggi di overflow su argomenti correlati, sono stato in grado di raccogliere che questo è possibile tramite l'API Java MBean - o IBM di ERO API - Il problema è che non riesco a trovare un posto in cui sono riassunti queste liste API, vale a dire non si può capire quale uno per cominciare guardando. Potrei hardcode WAS percorso di installazione e trovare il file, cercando nella directory 'installedApps', ma questo non è dinamica.

Qualcuno ha qualche esperienza di lavoro con queste API? Qualsiasi altro modo per trovare in modo dinamico il nome visualizzato del EAR schierato?

EDIT - Vorrei aggiungere che il motivo vorrei questa informazione è quello di caricare dinamicamente le nostre proprietà file - che sono denominati dal seguente convenzione "EARAppName.properties" - in modo da vedere c'è un 'razionale' ragionevole dietro a desiderare questo informazioni nella mia applicazione

EDIT 2 - devo anche notare che questa applicazione sarà sempre distribuito su un ERA -. Ma nel caso che esso isnt, una soluzione non proprietaria generica sarebbe preferibile, ma non necessario in questo momento

EDIT 3 - Quello che voglio realizzare: C'è un modo per trovare dinamicamente nome visualizzato del EAR schierato dall'interno del codice dell'applicazione?

È stato utile?

Soluzione

Se tutta la ragione per questo obiettivo è la lettura file di proprietà, allora vi consiglio un approccio diverso.

Usa libreria di WebSphere condivisa.

http://publib.boulder.ibm.com/infocenter/wasinfo/v6r0/index.jsp?topic=/com.ibm.websphere.nd.doc/info/ae/ae /tcws_sharedlib.html

per ogni orecchio schierato hanno una directory separata che contiene i file di proprietà che deve essere accessibile da quell'orecchio.

Crea voce di libreria condivisa per ogni directory che contiene il file proprietà.

Da EAR creare riferimento libreria condivisa alla libreria condivisa richiesta.

.

Tuttavia sotto i collegamenti possono essere di qualche aiuto a voi per il vostro approccio:

Gestione delle applicazioni mediante la programmazione

Interfaccia AppManagement

Altri suggerimenti

Non è una risposta diretta, ma non sarebbe più semplice usare un nome difficile codificato per il file delle proprietà? Dopo tutto, sembra avere un senso per una data applicazione ad essere consapevoli di ciò che il file da caricare. La scrittura di codice per leggere il display-name in un descrittore di deployment Sembra strano (soprattutto perché si, come Provider componente dell'applicazione , non dovrebbe fare affidamento su qualcosa di proprietà della Application Assembler ).

Sto cercando di ottenere la stessa cosa qui. Sto cercando di localizzare in fase di esecuzione l'ApplicationName trovato nel META-INF / application.xml.

Usiamo questo NomeApp nel nostro file Log4J Appender per creare una vera e propria nome di base del file di registro sull'applicazione fase di registrazione. Abbiamo un sacco di programmatori e un sacco di app e abbiamo bisogno di far rispettare qualche convenzione in un quadro.

I Whish potrei semplicemente chiamare:

InputStream in = new MyObject().getClass().getResourceAsStream(“META-INF/application.xml”);

Ho provato anche a cambiare il programma di caricamento classe a ‘PARENT_LAST / FIRST’ e ‘ClassLoader singolo’, ma non funziona.

Ho potuto localizzare l'application.xml su filesystem relativo al mio file guerra, ma non sono sicuro che avrebbe funzionato per tutto il tempo.

è l'API JMX davvero l'unico modo?

Non è per la vostra applicazione per sapere in quanto tale, ma per gli strumenti EAR di gestione, tra cui il server di applicazione.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top