Installazione e configurazione della Web Logic Platform Parte 1 - Web Logic Server R. Turco
In questa prima parte esaminiamo i passi base che conducono ad una rapida comprensione della Web Logic Platform 8.1 per l‟amministrazione, configurazione ed u so. Sebbene qui si parla della versione 8.1, il 99% delle operazioni qui mostrate rimangono valide anche per versioni successive. La parte I si interesserà in dettaglio essenzialmente di Web Logic Server e dei tools di deployment. Requisiti per l’installazione Requisiti Sistema/Software Piattaforme
Valori minimi e raccomandati La certificazione delle piattaforme è mostrata da BEA alla URL http://e-docs.bea.com/wls/certifications/certifications/index.html
Sono supportate le maggiori piattaforme: Windows 2000/XP SUN Solaris 8 (2.8 o 5.8/ superiori) HP Alla URL di sopra esistono sempre aggiornate raccomandazioni per la JVM, patches, valori di configurazione del kernel UNIX, performance, etc Memoria di sistema
Processore
Spazio disco
Raccomandato un minimo di 128 MB per UNIX e Windows. L‟esperienza
però dimostra che tale valore è valido se sul sistema non esistono molte piattaforme o middleware (TUXEDO, Oracle 9i, etc). Inoltre più memoria di sistema si dispone più la JVM risponde rapidamente, poiché java lavora solo sul heap. Il valore consigliato in questi casi è, invece, da 512 Mbyte in poi per un ambiente di sviluppo standalone Per Windows occorre avere almeno un Pentium con un clock maggiore dei 400 Mhz per avere delle decenti performance. La strategia migliore è di avere comunque Web Logic Server sul processore più veloce. Sotto Windows occorrono per il funzionamento di Web Logic almeno 250 Mbyte per il prodotto e 150 Mbyte ulteriormente disponibili. Tuttavia dipende anche da quanto si intende poi sviluppare. Sotto UNIX occorre almeno un analogo valore. Lo spazio ulteriore serve in fase di spacchettamento automatico del prodotto.
Java 2 Platform
Si dovrebbe disporre dell‟ultima versione di JDK stabile disponibile.
Generalmente viene installata la JVM della SUN (Hotspot). Sotto Windows o Red Hat Linux, Linux, per un miglioramento delle performance per per applicazioni “mission critical” va fortemente considerata la possibilità di usare la JVM Jrockit fonita nel kit o scaricabile dalla BEA. Se installate su Windows o Red Hat Linux usate la JRockit!! Web browser
Per l‟amministrazione da consolle di Web Logic Server vanno bene browser
come Internet Explorer 5.x o superiori e Netscape 4.7.x o Mozilla 1.4 in su
1
Installazione di Web Logic Server
L‟installazione permette di installare WLS W LS (Web Logic Server ), ), WLI (Web Logic Integration),
WLP (Web Logic Portal), Web Logic Workshop. Step 1 - BEA NET INSTALLER/ BEA INSTALLER
Occorre disporre di Net Installer. Lo si può scaricare da: http://commerce.bea.com/downloads/weblogic_platform.jsp Oppure del BEA Installer su CD. Step 2 - BEA HOME DIRECTORY
Si esegue il programma selezionato e si sceglie la BEA Home Directory. Il valore di default BEA dovrebbe andar bene, a meno che non esista già o esiste uno standard aziendale da seguire. In tal caso cambiatelo. Su Windows ad esempio è C:\BEA Step 3 - INSTALLATION INSTALLATION TYPE
Si potrebbe eseguire quella Typical o Complete, ma il nostro obiettivo è imparare e comprendere e non c‟è niente di meglio che f are are una installazione Custom.
Step 4 - CHOOSE COMPONENTS
Occorre scegliere le componenti da installare. Selezionando una macro area, nell‟albero a sinistra, si
ottiene una breve descrizione a destra. D‟altra parte prima di installare provate a giocherellare
a cliccare per vedere quali sono le dipendenze delle macro aree. Si può installare Web Logic Workshop senza Web Logic Server, ad esempio? o solo Web Logic Server senza Workshop? Si può installare Web Logic Integration da solo? Si può installare Web Logic Platform da solo? Ora per esercizio installiamo invece solo Web Logic Server ed anche Workshop. Step 5 - D DOWNLOAD OWNLOAD OPTION
Occorre indicare una directory d‟appoggio (Storage Directory) dove viene messo il prodotto per spacchettarlo. Inoltre va indic ato se rimuovere il pacchetto dopo l‟installazione o meno. Per
esperienza so che è meglio lasciare il pacchetto di installazione perché potrebbe essere necessario installare poi dopo altre componenti o ri-installare eventualmente. Se in produzione si è di etro un firewall vanno indicati Host e Port dell‟http Proxy server. Ciò in un ambiente di sviluppo non serve. Step 6 - Autoinstallation
A questo punto inizia l‟installazione. Si consiglia di segnare la casellina dell‟autoinstallazione. Altrimenti si deve conoscere ogni tool sin dall‟inizio e lanciarlo manualmente. Non è il caso all‟inizio. Step 7 - Web Logic Server Product Directory
Va indicate la directory, sotto la BEA Home directory, dove fisicamente viene installato Web Logic Su Windows ad esempio è C:\BEA\WebLogic81
2
Step 8 - Domain Configuration Wizard
Web Logic Server esiste all‟interno di un contesto di dominio. Un dominio è un insieme correlato di
risorse per Web Logic. Questo step tende, quindi, a definire il tipo ed il nome del dominio. Vengono suggeriti diversi template tipologie di dominio:
WLS Examples. Questo template crea un nuovo dominio nel quale Web Logic Server è preconfigurato per lanciare le applicazioni di esempio. Non si usa. WLS Petstore. Questo template crea un nuovo dominio nel quale Web Logic Server è preconfigurato per lanciare l‟applicazione Petstore. Non si usa.
WLS Domain. Questo template crea un nuovo dominio a cui si dovrà associare una nuova applicazione. E‟ questo template che si usa quando si sviluppano nuove ap plicazioni. Web Logic Workshop. Questo template crea un nuovo dominio a cui si dovrà associare una nuova applicazione che utilizza web services ad esempio.
In generale nella installazione già si era prescelto di installare la voce “Server Examples” quindi si
disporranno anche degli esempi e di Pet store. Infine occorre dare un nome al dominio che sia univoco (es: mydomain) Step 9 - Choose Server Type
Tale scelta è importante e va fatta consapevolmente tra le seguenti opzioni: Single Server (Standalone Server): crea un Web Logic Server che lavora anche da Admin Server ed ospita le applicazioni (consigliata per lo sviluppo).
Admin Server with with Managed Server(s): Server(s): crea un Admin Server con con uno o più Managed Server Admin Server with Clustered Managed Server(s): crea un Admin Server con uno o più clustred Managed Server Managed Server (with owning owning Admin Server configuration): configuration): usato a volte per estendere estendere un un Web Logic domain con un Managed Server
Inizialmente scegliamo Single Server. Step 10 - Domain Container Directory
Occorre specificare la top directory sotto cui mettere il domain container (contenitore dei domini). Il default è user_projects (ad esempio gisp_project) sotto la BEA_HOME (C:\bea\user_projects). (C:\bea\user_projects). Step 11 - Configure
Una volta scelto Single Server occrre dare le seguenti informazioni: Server Name: un nome univoco e non può essere uguale al nome del dominio altrimenti si possono ottenere strani errori.
3
la macchina ha un solo IP non va settato tale valore perché viene automaticamente scelto il primary IP. Va fatto solo se la macchina ha più di un IP. Server Listen Address: l‟IP address o il nome DNS della macchina (anche localhost). Se
Server Listen List en Port : le richieste richie ste http vengono vengon o ricevute sulla s ulla porta di default 7001, eventualmente da cambiare se già usata altrove. Server SSL Listen Port : le richieste https vengono ricevute sulla porta di default 7002, eventualmente da cambiare se già usata altrove. Se non dovesse servire l‟https in sviluppo è consigliabile allora di evitate di abilitar e l‟ascolto anche sulla porta 7002, ottenendo migliori
prestazioni. Step 11 - Username e Password
Vanno inserite le username e password di amministrazione. Step 12 - Windows Service e Start Menu Entry
Sotto Windows si può settare Web Logic Server in modo che al bootstrap WebLogic Server parte come servizio della macchina. Basta rispondere „Yes‟ al Wizard.
Inoltre sotto Windows è possibile anche avere un Start Menu Entry, che generalmente gli amministratori preferiscono evitare per avere un maggior controllo del prodotto. Step 13 - Configuration Summary
Il Configuration Summary ti ripropone l‟insieme delle scelte fatte precedentemente per chiedere se
procedure oppure no. Procediamo. Step 14 - Configuration Wizard Complete
A questo punto la configurazione è terminate e si deve decidere se uscire o meno. Se avessimo configurati solo gli esempi e PetStore, qua potremmo decidere di rilanciare il Configuration Wizard per fare tutti gli step precedenti a partire dallo step 9. Verifiche per lo sviluppo ed il funzionamento di Web Logic Server Occorre verificare le variabili d‟ambiente, sia CLASSPATH che PATH.
CLASSPATH è una lista di directory e locazioni di java class usate dalle JVM. Come minimo CLASSPATH deve contenere la WL_HOME/server/lib/weblogic.jar e %JAVA_HOME%/jre/lib/rt.jar. Inoltre se avete usato la JVM Jrockit è necessario modificare il puntamento di PATH ad essa. Vi consiglio di farla dopo l‟installazione di Web Logic, perché il giusto puntamento vi verrà suggerito
dallo stesso script startWebLogic.cmd. Inoltre in PATH vi conviene puntare anche a %BEA_HOME%/jrockit81sp1_141_03/console per poter sfruttare la console per il controllo della JVM JRockit.
4
Alberatura del prodotto Web Logic BEA HOME DIRECTORY
Directory o File Jdkxxx
logs user_projects utils weblogic81 license.bea registry.xml UpdateLicense
Description È la directory contenente il jdk, che fornisce la JVM ed I tools per compilare e debuggare Una directory che contiene history file delle installazioni e de-installazioni Il domain container Contiene utilitò tra cui utils. jar jar che supporta l‟UpdateLicense utility La directory che contiene la Web Logic Platform File delle licenze in formato XML E‟ un file in formato XML che contiene un record. E‟ raccomandato di non editarlo!!
Un file batch (Windows) o uno shell script (Unix) che aggiorna il file license.bea
DOMAIN CONTAINER DIRECTORY
Precedentemente abbiamo usato user_projects come “domain container directory”. Directory applications
Description
Directory che contien e l‟applicazione sottoposta a deploying (.ear, .war, .jar, .htm) Solo se è settato l‟autodeploy Web Logic Server esegue un controllo per verificare se esistono nuove applicazioni
userConfig logs myserver
da sottoporre a deploying Una directory in cui memorizzare informazioni per la sicurezza del dominio Contiene i log file del dominio Una directory create per ogni Web Logic Server.
Nella directory sono contenuti anche:
I SetEnv script. Questo script generalmente lancia poi un altro .cmd per settare l‟a mbiente
necessario Script startxxx.cmd per startare Web Logic nel dominio Il file config.xml per il dominio (anche questo è sconsigliato editare!!) Il file fileRealm.properties che memorizza username e access control list per il dominio Il file SerializedSystemIni.dat che è un salt(hash), che è usato per criptare la password
dell‟user del dominio. Il salt è una stringa che randomicamente viene concatenata alla
password. WEB LOGIC HOME DIRECTORY
Directory o File common
samples server uninstall workshop
Description Una directory che condivide file e risorse con tutta la Web Logic Platform, anche i .jar usati per il Configuration Wizard Una directory che contiene esempi. Dovrebbe contenere examples e Petstore. Contiene software di Web Logic, compreso driver terze parti JDBC Contiene software per disinstallare componenti di Web Logic Platform Contiene Web Logic Workshop e documentazione
5
Start di Web Logic Server
Esistono almeno tre metodi:
Sotto Windows: Start -> Tutti i programmi -> BEA WebLogic Platform 8.1 -> User Projects --> myDomain --> Start myserver (Solo se avete creato il Windows Start Menu durante la configurazione: per chi sviluppa forse conviene) Sotto Windows/UNIX: Andare nella root del dominio ed eseguire a mano startWebLogic.cmd e viene richiesta la password di amministrazione Sotto Windows/UNIX: lanciare webLogic.Server.class da linea di comando
Il metodo da dover per forza sapere è il lancio di startWebLogic.cmd che è valido per tutte le seguenti situazioni: Va bene per ogni sistema operativo
La conoscenza di come funzione tale script dà all‟amministratore un controllo maggiore del
prodotto Lo script è copiabile e modificabile per ogni dominio
STARTWEBLOGIC.CMD
Il file è nel dominio creato. Generalmente tale file si copia in start
.cmd. LE VARIABILI
WLS_USER : WLS_PW : JAVA_OPTIONS JAVA_OPTION S : JAVA_VM : MEM_ARGS:
quello di amministrazione amministraz ione quello di amministrazione amministraz ione le opzioni passate alla JVM la modalità con cui è lanciata la JVM (server, classic, hotspot) regola l‟heap memor y. y. Regola i valori minimo e massimo che è consigliato di tenere uguali (esempio: -Xms200 e – Xmx200) Xmx200) ed espressi in magabyte. DOMAIN_NAME: DOMAIN_NA ME: il nome del dominio dove Web Logic Server risiede SERVER_NAME: SERVER_NAM E: il nome del server da startare JAVA_HOME : la directory della JVM CLASSPATH: la directory contente I .class e.jar necessary al funzionamento funzionam ento del server Nello script si nota che viene usato il comando java Argument [Optional Argument] webLogc.Server webLogc.Server
In genere gli Argument sono: $JAVA_VM $MEM_ARGS $JAVA_OPTIONS. Solo dopo gli Argument si possono trovare istruzioni del tipo – D parametro=valore che possono essere -Dweblogic.=) oppure “Java specific” ( “WebLogic specific” ( -Dweblogic.=) Djava.=). -Xms e –Xmx
Fissano la dimensione minima e massima dell‟heap di memoria. Un valore basso a 100 è possibile ma la JVM sarà lenta. Un valore migliore è 200, consigliabile anche 512 o più a seconda della memoria disponibile sul sistema. Se volete lavorare con Java seriamente, dovreste avere almeno 512 Mbyte, meglio 1 Gbyte.
6
-Dweblogic.management.discover
Se si lavora con una situazione Single Server (Admin Server e Web Server sono la stessa cosa), allora porre a false tale tale JAVA_OPTIONS, permette ad un Admin Server Server di evitare di scoprire se esistono dei Managed Server. In questo caso si evita un overhead inutile. Tale opzione va aggiunta manualmente. -Dweblogic.ProductionModeEnabled
Se si ipotizza di lavorare in un ambiente di sviluppo vale false e viene anche configurato l‟autodeploy.
Administration Console
Da browser fare http://hostname:port/console esempio: http://localhost:7001/console http://localhost:7001/console.. Inserire username e password dell‟amministratore e apparirà per l‟amministrazione del dominio mydomain.
una finestra divisa in due parti verticali
Il logout può avvenire su tale pagina nella parte alta a destra. Boot Identify File
Per una questione di sicurezza per evitare di dare al boot username e password la prima volta dopo la configurazione e prima di startare Web Logic Server compilate un file di testo boot.properties con due righe: username=username password =password Al primo boot il file viene soprascritto con una versione criptata e non verrà più richiesta username e password. Considerazione: si può farne a meno perché dopo la prima installazione/configurazione il file criptato viene automaticamente creato. Shutdown con l’Administra l’ Administration tion Console All‟ingresso nella consolle, nella parte ad albero a sinistra scegliere la voce “Servers” e scegliere il
nome del server su cui bisogna eseguire lo shutdown. Il Click destro del mouse sul nome del server fa aprire un menù da cui scegliere la voce “Start/Stop this server …”. E‟ consigliabile l‟uso di tale
metodo. Shutdown con weblogic.Admin utility In mancanza di browser tale metodo è l‟unico valido ed è costituito dal comando:
java weblogic.Admin [-url URL] [-username username] [-password password] COMAND arguments
7
dove COMAND deve valere SHUTDOWN (occorre per sicurezza passare anche – url url – username username – password). SHUTDOWN richiede come arguments: [seconds] [“message”]
Esempio: java weblogic.Admin -url http://myhost:7001 -username webgs9856 -password mahf1ncheduralungo SHUTDOWN 60 “shutdowm tra 60 secondi”
ALTRI VALORI DI COMAND SHUTDOWN START STARTINSTANDBY RESUME FORCESHUTDOWN GETSTATE PING SERVERLOG HELP LICENSES VERSION
come nel precedente richiede Node Manager richiede Node Manager
In STANDBY un WebLogic W ebLogic Server ha scartato tutti i servizi ma accetta solo comandi da consolle. Solitamente WebLogic è in RUNNING mode. LA sintassi dei comandi è di seguito s eguito mostrata: java weblogic.Admin weblogic.Admin [-url URL] [-username username] [-password password] FORCESHUTDOWN FORCESHUTDOW N [targetserver] java weblogic.Admin [-url URL] [-username username] [-password password] GETSTATE [targetserver] java weblogic.Admin [-url URL] [-username username] [-password password] PING [round-trip] [message-length] java weblogic.Admin [-url URL] [-username username] [-password password] SERVERLOG [[starttime] [endtime]] java weblogic.Admin HELP [COMMAND] java weblogic.Admin [-url URL] [-username username] [-password password] LICENSES java weblogic.Admin [-url URL] [-username username] [-password password] VERSION
JROCKIT ADMINISTATION CONSOLE In startWebLogic.cmd startWebLogic.cmd occorre settare JAVA_OPTIONS nel seguente modo : set JAVA_OPTIONS = -Djrockit.managementserver=true
Allo start del server si deve vedere una riga del tipo: [JRockit] Management Management Server starter on port 7090 Sebbene ciò funziona correttamente è da tener presente anche che il comando è diventato deprecated. Su questo punto non si comprende perché dato che al momento è l‟unico modo per
essere sicuri che si sta usando la JVM JRockit. Per vedere l‟andamento della JVM JRockit è possibile lanciare la sua consolle col c omando: java – jar ManagementConsole.jar
8
Con esso si ottiene una piccola finestra dove occorre dare il server name, la porta (default 7090), il connection connection name (localhost). In questo modo si può monitorare la Memoria, il processore, il sistema etc. per ogni porta in gioco.
Deployment Tools Una tipica applicazione web ha .html, .class, .jar, .war in gioco. La Administration Console fornisce le stesse utilità, a meno di qualch e piccola differenza, per il deployment (webLogic.Deployer) E‟ necessario però che il file system dove sono EAR, WAR, JAR, RAR sia accessibile da WebLogic. Nel seguito per directory root si intende quella sotto applications .
CREARE LA WEB APPLICATION DIRECTORY Una Web Application si basa come sempre su un‟alberatura standard per tutti i Java Web Server
(vedi Tomcat ad esempio): Directory
/ /WEB-INF
/WEB-INF/classes /WEB-INF/lib
Descrizione La document root dove risiedono .html e le jsp che vengono accedute da browser Qui risiedono web.xml e weblogic.xml deployment descriptors. E‟ necessario che WEB INF sia scritto in tale modo (uppercase). Weblogic.xml correla tutte le risorse necessarie all‟applicazione per il suo funzionamento (es: http session parameters, https co okie parameters, JSP parameters, resource reference, security role, container attributes, etc). Qui risiedono i file .class Directory dove saranno posti i .jar
Preferibilmente il nome della document-root () è uguale a quella dell‟applicazione (Es: HelloWorldApp HelloWorldApp ). Se stiamo sviluppando dobbiamo crearci l‟alberatura per la prima volta manualmente. Se state sviluppando i sorgenti java depositateli nella root HelloWorldApp. Se stiamo effettuando un deploy basta mettere il WAR sotto la directory applications e avviare Web Logic. Tale alberatura permette di poter fare l‟autodeploying di un‟applicazione war. Naturalmente il CLASSPATH deve prevedere la /WEB-INF/lib.
CREARE UNA PAGINA HTML DI WELCOME
Creiamo un index.html nella root (HelloWorldApp (HelloWorldApp directory): Welcome to my HelloWorldApp Welcome to my HelloWorldApp
Click hereto call my servlet.
9
CREARE UNA SERVLET
Creiamo la servlet MyServlet.java in HelloWorldApp directory. package objectmind.servlets; import javax.servlet.*; javax.servlet.*; import javax.servlet.http.*; javax.servlet.http.*; import java.io.*; public class MyServlet extends HttpServlet { public void service(HttpServletRequest req, HttpServletResponse HttpServletResponse res) throws IOException { res.setContentType(“text/html”);
PrinterWriter out = res.getWriter(); res.getWriter(); out.println(“
” + “Hello World!”); out.println(“Hello World!!
”);
}
}
Da linea di commando compiliamo: javac – d WEB-INF/classes MyServlet.java
In tal modo sotto classes vi viene creato il package richiesto objectmind.servlet che contiene MyServlet.class STARTARE WEB LOGIC BUILDER Per assemblare e deplorare l‟applicazione effettui amo lo start di Web Logic Builder.
Per fare ciò è possibile lanciarlo da Windows con:
Start -> Tutti i programmi -> BEA B EA WebLogic Platform 8.1 -> Other O ther Development Tools -> WebLogic Builder
Altrimenti sotto %WL_HOME%/server/bin %WL_HOME%/server/bin occorre effettuare da linea di comando: startWLBuilder.cmd Dall‟editor effettuare File Open e cercare la directory HelloWorldApp e fare Open. Al dialog box d‟errore, richiedere di creare per voi i deployment descriptor. Rimuovere index.jsp e index.htm e selezionare il file index.html che fa parte dell‟applicazione
appena creata.
10
Selezionare nella parte sinistra Servlets e verificare che MyServlet sia presente. Poi nella parte destra assicurarsi che nel campo URL Mapps sia presente /MyServlet/* saltrimente usare il tasto dolete e poi inserire /MyServlet/* e fare Add. CREARE IL WAR PER IL DEPLOYING Un primo metodo è creare il war a mano come al solito. L‟altro è con la consolle.
Colleghi amoci dalla Administration Console e scegliere “Helpfuls Tools” Your deployed resources. Scegliere “Web Application Modules”, Modules”, poi “Deploy “Deploy a new Web Application Module”, poi cliccare
su applications e segnare (check) HelloWorldApp. Ora cliccare “Target Module”. Infine cercare il bottone “Deploy” e cliccarlo.
. TESTARE L’APPLICAZIONE
Per testare da browser è sufficiente digitare: http://:7001/HelloWorldApp/index.html http://localhost:7001/HelloWorldApp/index.html In alternativa da Administration Console, nella parte sinistra, cliccare su Deployment Applications Modules HelloWordApp
Web
Spostarsi ora nel la parte destra selezionando la voce “Testing” e clic care su index.html. Esercitazioni
Finisce qui la parte I. Si consiglia di esercitarsi su tale parte osservando sempre di più la Administration Console. Provate a verificare che modificando la servlet , funziona l‟auto-deploy. Create una JSP e verificate dove Web Logic Server compila la JSP e la trasforma in una servlet. Provate a creare il WAR e farne il deploy da Administration Console. Console. Ringraziamenti
Ringraziamo coloro che intenderanno fornire ulteriori indicazioni e suggerimenti.
11