In questo articolo presenteremo l'architettura generale dell'application server JBoss AS 7.1. Passeremo poi ad illustrare in maniera semplice l'installazione e la configurazione, per essere subito operativi, su Windows o Unix.
Prima di procedere con la lettura dell'articolo assicuratevi di avere installata una JDK versione 1.6 o superiore.
Caratteristiche del server JBoss
Velocità
Il processo di boot è molto ben ottimizzato: i servizi sono avviati in modo concorrente per ridurre notevolmente i tempi di attesa e per sfruttare al meglio le caratteristiche multi-core ormai presenti da tempo nei processori. I servizi non critici vengono attivati in modalità lazy, al loro primo utilizzo.
Modulare
I classloaders gerarchici sono spesso problematici, e possono causare il fallimento di deploy e in generale comportamenti inaspettati. Jboss AS 7.1 abbandona questa modalità di tipo parent delegation model, per passare invece ad una struttura modulare.
I moduli JBoss forniscono quindi una vero isolamento delle applicazioni, nascondono le classi che fanno parte dell'implementazione del server e caricano esclusivamente le classi di cui necessita la nostra applicazione. I moduli realizzati come package di classi rimangono pertanto isolati se non esplicitamente indicati come dipendenze verso altri moduli.
Leggerezza
É stato implementato un approccio alla gestione della memoria "aggressivo", e al fine di minimizzare le pause del garbage collector vengono caricati soltanto i jar di cui si ha bisogno. Tutto questo mantiene la quantità della memoria utilizzata eccezionalmente ridotta.
Amministrazione
L'interfaccia di amministrazione è semplice ed intuitiva, focalizzata sull'utente, come vedremo tra poco.
Portabilità
Quanto alla portabilità: Jboss AS 7.1 raggiunge la Java EE 6 Full Profile certified.
Installazione di JBoss
Possiamo scaricare l'ultima versione ( Brontes) al seguente url:
L'installazione è semplicissima: è sufficiente infatti aprire l'archivio zip o tar nella nostra directory dedicata a JBoss. Dopo l'estrazione, possiamo proseguire a dare subito un'occhiata alla struttura della directory principale.
Struttura delle directory
AS 7 Directory Structure
Standalone Directory Structure
Nella modalità standalone ogni istanza di application server è un processo indipendente. La directory standalone
contiene tutti i file di configurazione e l'area di deploy per questa modalità.
In questo articolo di introduzione non consideriamo domini cluster, per cui omettiamo la descrizione della directory domain
concentrandoci quindi sulla modalità standalone
.
Directory | Descrizione |
---|---|
bin | Script di avvio e configurazione per Unix e Windows |
bundles | Locazione degli OSGi bundles |
docs/schema | Qui si trovano le definizioni dei file XML Schema utilizzati dal server |
domain | Directory dei file di configurazione e deploy di applicazioni per una configurazione di cluster JBoss |
modules | AS 7 è basato su una architettura di classloading a moduli. I vari moduli utilizzati dal server sono presenti in questa directory. |
standalone | File di configurazione, area di deploy utilizzata da una singola istanza di server |
welcome-content | Welcome page di default |
Directory | Descrizione |
---|---|
configuration | Tutte le informazioni di configurazione per la modalità standalone sono contenute in questa directory |
data | Directory utilizzata dall'application server per salvare dati necessari in caso di riavvio del server |
deployments | Directory di deploy delle applicazioni. I file WAR o EAR delle applicazioni vengono posti in questa in questa directory per consentirne l'installazione. |
lib/ext | Qui troviamo librerie jar referenziate dalle applicazioni utilizzando il meccanismo Extension-List |
log | File di log del server |
tmp | File temporanei del server |
Se visualizziamo il contenuto della directory configuration
Vediamo cosa attiva ciascun file in termini di servizi:
La configurazione, tramite profili
standalone.xml (default)
La configurazione web profile Java Enterprise Edition 6 certified, include tecnologie richieste dalla specifica Web Profile con in più Java Connector 1.6 Architecture, Java XML API for RESTFul Web Services, e OSGi.
standalone-full.xml
Java Enterprise Edition 6 full profile contiene tutte le tecnologie della configurazione di default con in più Java API for XML-Based Web Services (JAX-WS) 2.2 e Java Message Service 1.1.
standalone-ha.xml
Web profile di default con capacità cluster.
standalone-full-ha.xml
Full profile con capacità cluster.
Concentriamoci adesso sulla modalità standalone base: questo vuol dire che avvieremo il server con il file di configurazione standalone.xml.
Configurazione di base ed avvio di JBoss
Come indicato precedentemente la directory bin
, situata nella directory root
dell'application server, contiene i file di avvio del server per Unix e Windows: standalone.sh
e standalone.bat
.
Scelta della jdk
Prima di procedere con l'avvio, è fondamentale configurare il server in modo tale che sappia quale JDK utilizzare installata sul vostro pc. All'interno delle directory bin
trovate il file standalone.conf
, apritelo con un editor di testo ed individuate la linea relativa alla variabile JAVA_HOME
, togliete lo # di commento ed inserite il path alla vostra JDK.
Ad esempio: se la JDK sotto Windows si trova nel percorso C:Program FilesJavajdk1.6.0_26
editeremo nel seguente modo:
Avvio
Per avviare il server:
Dove al parametro server-config
standalone.xml
server-config
standalone.xml
Inoltre sotto Windows per avviare il server con la modalità base è sufficiente avviare il file bat come fosse un normale programma Windows (click o doppio click).
Se tutto è andato bene dovremmo vedere un processo di startup estremamente veloce e con una schermata simile alla seguente:

avvio di JBoss
Finalmente possiamo aprire il browser e digitare l'url http://localhost:8080
per visualizzare la pagina di welcome di JBoss:

welcome page di JBoss
Il metodo più semplice (per ora) per effetturare lo shutdown è quello di digitare CTRL+C.
Abbiamo terminato con successo l'installazione, configurazione e avvio di JBoss in modalità standalone, tuttavia per poter operare con il server a livello di amministrazione, è necessario conoscere i concetti fondamentali per una ammistrazione di base, quindi vediamoli brevemente.
Estensioni per JBoss
Un'estensione è un modulo che estende che le capacità del server. Il core dell'application server è molto leggero e semplice, e molte delle funzionalità associate all'application server sono quindi fornite attraverso le estensioni.
Un'estensione è un modulo package inserito nella directory module
a livello delle directory root del server. L'amministratore rende disponibile un modulo attraverso la configurazione dello stesso nel file standalone utilizzato, attraverso i tag extensions ed extension:
<extensions>
<extension module="org.jboss.as.transactions"/>
<extension module="org.jboss.as.web" />
<extension module="org.jboss.as.webservices" />
<extension module="org.jboss.as.weld" />
</extensions>
Profili e sottosistemi
La parte più significativa della configurazione sia in modalità standalone che cluster è il concetto di profilo.
Un profilo è il nome dato ad un insieme di configurazioni di sottosistemi. Un sottosistema è un insieme di funzionalità aggiunte al cuore del server attraverso le estensioni. Un sottosistema fornisce ad esempio la gestione delle servlet, un EJB container, il supporto JTA alle transazioni e cosi via.
Un profilo con un ampio numero di sottosistemi rappresenta quindi un server con numerose funzionalità attive. Un profilo viene configurato nei file standalone attraverso il tag profile mentre un sottosistema attraverso il tag subsystem.
Paths: jboss.server.log.dir
I paths sono nomi logici per percorsi di file system. Sia il file domain.xml
che gli standalone.xml
contengono una sezione in cui è possibile dichiarare i paths attraverso il tag path. Un esempio:
<path name="example" path="example" relative-to="jboss.server.data.dir"/>
Dove: name è il nome del path; path è il percorso del file system. É un path assoluto se non viene specificato l'attributo relative-to
, in questo caso viene considerato come un path relativo; relative-to
(opzionale) è il nome di un path precedentemente definito, oppure uno di quelli standard definiti dal sistema.
JBoss AS 7 automaticamente fornisce dei path standard:
jboss.home
user.home
user.dir
java.home
jboss.server.base.dir
jboss.server.data.dir
jboss.server.log.dir
jboss.server.tmp.dir
jboss.domain.servers.dir
Accesso all'interfaccia di amministrazione
Se facciamo click sul link Administration Console
vedremo comparire una schermata di login e non un accesso diretto all'interfaccia di amministrazione: questo perchè in JBoss la sicurezza è abilitata di default.

login su jboss
Aggiunta di utenti al realm predefinito
Per poter accedere abbiamo bisogno di definire un utente di amministrazione. Ciò che ci permette di definire utenti è l'utility add-user.bat
o add-user.sh
.
Dobbiamo però fare attenzione perché per poter accedere all'interfaccia di amministrazione abbiamo la necessità di definire un utente nell'ambito del realm ManagementRealm
già definito all'interno di JBoss. Un realm è un database di username e password che identifica utenti validi, ovvero utenti appartenti ad un determinato ruolo con determinati privilegi.
Il ManagementRealm
è il realm che dobbiamo specificare quando vogliamo creare un utente con privilegi di amministratore.
Vediamo come creare un amministratore in ambiente Windows. Posizioniamoci nella directory bin di JBoss ed avviamo il file add-user.bat
, si aprirà una console interattiva per la creazione di un nuovo utente:

jboss: creazione utente da console
Gli step da seguire sono i seguenti:
- Scegliere il tipo di utente: opzione (a) (Management User)
- Il realm : inserire ManagementRealm
- Lo username : username da voi scelto, ad esempio inseriamo HtmlDotIt
- La password: la password scelta, ad esempio inseriamo admin
- Conferma: digitiamo yes ed premiamo invio per confermare la creazione dell'utente
Torniamo alla console di amministrazione ed effettuiamo il login con le credenziali appena definite, dovremmo poter accedere e vedere l'interfaccia di amministrazione:

jboss: interfaccia di amministrazione
Conclusioni su JBoss
Abbiamo mosso i primi passi nel mondo JBoss, acquisendo le nozioni fondamentali che ci permettono di poter avere una visone di insieme delle funzionalità. Come suggerimento si invita a dare un'occhiata al contenuto del file standalone.xml
, per poter collegare in modo più approfondito i concetti esposti e rendersi conto di come effettivamente JBoss organizzi la configurazione dei suoi moduli. Forti di queste nozioni di base, vedremo nel successivo articolo come muoverci all'interno dell'interfaccia di amministrazione.