Gestire Websphere Application Server tramite Jython

Gestire Websphere Application Server tramite Jython

Jython è un linguaggio di programmazione successore di JPython, ed è una implementazione in Java del linguaggio Python. I programmi Jython possono importare ed usare classi Java. Jython include una buona parte dei moduli del linguaggio standard Python, mancano soltanto alcuni di essei scritti in linguaggio C. Il codice scritto in Jython viene precompilato in bytecode e poi eseguito sulla Java Virtual Machine, equivalenntemente a quanto accade per il Java "puro".

Jython è un linguaggio di programmazione successore di JPython, ed è una implementazione in Java del linguaggio Python. I programmi Jython possono importare ed usare classi Java. Jython include una buona parte dei moduli del linguaggio standard Python, mancano soltanto alcuni di essei scritti in linguaggio C. Il codice scritto in Jython viene precompilato in bytecode e poi eseguito sulla Java Virtual Machine, equivalenntemente a quanto accade per il Java “puro”.

Una tra le tante cose che differenzia WebSphere Application Server (WAS) dagli altri Application Server Java EE è la facilità di scrivere degli script per poterne gestire la manutenzione e poter automatizzare alcuni task, questi script possono essere scritti in linguaggio Jacl o Jython.

I due linguaggi sono intercambiabili tra di loro, nel senso che la scelta dell’uno o dell’altro dipende esclusivamente dalle skill dello sviluppatore, uno sviluppatore con conoscenze di C o Java sceglierà Jython, un programmatore con conoscenze Tcl sceglierà Jacl (che è appunto una implementazione in Java di Tcl).

Per poter interagire tramite scripting col WAS si utilizza una console chiamata wsadmin. Questo tool di gestione è presente dalla versione 5 del WAS ed è utilizzato per eseguire script sia Jacl che Jython su WAS installati sia in locale che in remoto. Per poter lanciare la console bisogna recarsi al percorso <IBM WebSphere Profile Path>/bin/ e lanciare lo script wsadmin.bat se si è su ambiente Windows altrimenti wsadmin.sh su ambiente Linux.

Possiamo specificare dei parametri quando lanciamo la console altrimenti questi verranno caricati i valori presenti nel file wsadmin.properties presente nella cartella <IBM WebSphere Profile Path>/properties/ , i valori di default seguono la seguente tabella:

ProprietàValore di defaultOpzione tramite Command-Line
connectionTypeSOAP-conntype
port8880-port
hostlocalhost-host
defaultLangjacl-lang
echoparamstrue
traceFile…/wsadmin.traceout-tracefile
validationOutput…/wsadmin.valout
appendTracefalse-appendtrace
profiles
…/securityProcs.jacl;
…/LTPA_LDAPSecurityProcs.jacl
-profile
emitWarningForCustom
SecurityPolicy
true

Ad esempio se vogliamo lanciare la console su di un server remoto, con porta diversa da quella di default, diamo il comando:

wsadmin -host 10.37.51.209 -port 8881 -lang jython

Nel caso in cui sul server sia abilitata la sicurezza bisogna aggiungere i parametri -user e -password, se li omettiamo verrà proposta a video una dialog box nella quale andremo ad inserire le nostre credenziali.

Una volta lanciata la console possiamo provare a dare il comando dir(), il quale mostrerà quali oggetti ci sono, che utilizzeremo in seguit, nel namespace di default:

wsadmin>dir()
[‘AdminApp’, ‘AdminConfig’, ‘AdminControl’, ‘AdminTask’, ‘Help’, ’TypedProxy’, ‘__doc__’, ‘__name__’, ‘bsf’, ‘sys’]

prima di dare il comando dir() assicuriamoci di aver commentato nel file wsadmin.properties  (con il carattere #) la linea riguardante com.ibm.ws.scripting.profiles altrimenti verranno ritornati una moltitudine di oggetti che al momento non ci interessano.
Gli oggetti che andremo ad utilizzare sono i primi cinque:
Object Name Description
AdminConfig Object used to view and manipulate configuration elements (xml files).
AdminControl Object used to view and manipulate active application server objects
(MBeans).
AdminApp Object used to install and manipulate applications.
AdminTask Object used to execute administrative and server management commands.
Help Object used to provide usage information about the administrative objects.

Assicuriamoci di aver avviato il WAS e che la connectionType sia impostata correttamente, ed utilizziamo l’oggetto AdminControl:

AdminControl.getCell()

ritorna il nome della Cella, mentre:

AdminControl.getNode()

il nome del Nodo.

COMMENTS

WORDPRESS: 0