Documentazione Contatti      
Documentazione > Tutorial > Ambiente di sviluppo per Jboss
Hide
Best Practices
EJB
Frameworks
Howto
J2EE
J2ME and Wireless
J2SE
JSP e Servlet
Java Application Server
Java IDE/Tools
Java Media
Java Security
Java Sys Admin
Java e XML
Java e SQL
OpenSource Java
Patterns
Repository
Tesi
UML
Web Services
Slide
White Paper di jws.it
project management
Eventi
Groovy



Presentazione Spring 3.0 a Roma


John Fitzgerald Kennedy
L'uomo è il computer più straordinario di tutti


Comunicazione fra J2ME e un application server J2EE



  Visualizza Commenti (0) Aggiungi Commento    
 
Ambiente di sviluppo per Jboss
By Luca Stancapiano
20 ottobre 2005
Valutazione Acquisita: 30

  Ambiente di sviluppo per Jboss
Program Configurazione di Eclipse
Program Download dei sorgenti di Jboss
Program Compilazione dei moduli
Program Esecuzione e debugging di Jboss
Program Mantenimento

Introduzione:

Vi condivido un modo piuttosto utile per sviluppare JBoss con l'ambiente di eclipse. I requisiti sono Eclipse platform 3.01, scaricabile da http://www.eclipse.org/downloads/index.php ,almeno 512 mb di RAM e una linea internet piuttosto veloce, visto che è necessario scaricare i sorgenti dal sito internet.

Mi riferiro' a jboss dalla versione 3.2 in poi visto che ,per le precedenti versioni non c'è un valido supporto per la piattaforma Eclipse. Quest'articolo sarà utile sia per gli sviluppatori Jboss , sia per chi ha intenzione di studiarlo, visto che il debugging dei sorgenti su una piattaforma grafica facilita molto l'apprendimento



Configurazione di Eclipse top

 

Innanzitutto aggiorniamo la piattaforma. Andiamo su Help/Software Updates/Find and Install e scegliere la prima voce, siccome non c'è bisogno di installare pacchetti aggiuntivi.

 Fig 1 download degli updates

Selezionare tutti i pacchetti visualizzati (la versione 3.0.1 include gia' i vari link per gli updates) e cliccare su OK. Terminato il download avremo la piattaforma aggiornata.

Eclipse utilizza la perspectives (prospettive) e sono di vari tipi (es. una per usare CVS, una per lo sviluppo java, debugging ecc ecc). Al momento ci interessa la java perspective (l'ambiente vero e proprio per sviluppare in java). Andiamo quindi su Window/Open Perspective e clicchiamo su Java :

 

Fig 2 perspective Java

cosa molto importante e' disabilitare il build automatico. Siccome lavorare con i sorgenti implica un pesante uso della memoria, usare il build automatico rallenterebbe nettamente il lavoro. Per disabilitarlo basta togliere il flag su Project/Build Automatically<

 

 Fig 3 eliminare il build automatico



Download dei sorgenti di Jboss top
 
Per poter iniziare il download dei sorgenti su eclipse e' importante avere un file di estensione .psf. (Team Project Source) che si trova soltanto per la versione 3.2 e 4.0 dentro la directory /build dei sorgenti scaricabili da http://www.jboss.org/downloads/index. Il .psf serve a unire diversi moduli CVS in un unico progetto. Questo perchè il progetto JBoss è composto da moltissimi moduli (per esempio jboss_hibernate, jboss_cache, jboss_tomcat) che devono essere uniti per poter formare una distribuzione. Per non farvi perdere tempo a fare il download completo della distribuzione vi condivido gli ultimi due .psf, aggiornati al 29/10/2004, uno per la versione 3.2 e uno per la 4.0. E' possibile pero', con il passare del tempo che questi files diventino precari ed è quindi necessario riprenderseli. Per chi invece li utilizza adesso non ci sarà bisogno di nessun altro download visto che vengono usati solo la prima volta. Per mantenere la versione aggiornata ,vedremo in seguito che è sufficiente un update dalla perspective CVS di eclipse.

Nella sezione Attachments List è possibile fare il downlaod di esempi di psf (momentaneamente non disponibili)

<?xml version="1.0" encoding="UTF-8"?>

<psf version="2.0">

     <provider id="org.eclipse.team.cvs.core.cvsnature">

           <project reference="1.0,

:pserver:cvs.sourceforge.net:/cvsroot/jboss,build/jboss,build,Branch_3_2"/>

           <project reference="1.0,:pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-cache,cache,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jbossmx,cluster,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-common,common,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jbosscx,connector,Branch_3_2"/>

           <project reference="1.0,

:pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-console,console,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,contrib/iiop,iiop,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-j2ee,j2ee,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,contrib/jboss.net,jboss.net,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jmx,jmx,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jmx-remoting,jmx-remoting,Branch_3_2"/>

           <project reference="1.0,

:pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-management,management,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jbossmq,messaging,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jnp,naming,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-remoting,remoting,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jbosssx,security,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss,server,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-system,system,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jbosstest,testsuite,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,thirdparty,thirdparty,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-tomcat,tomcat,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,tools,tools,Branch_3_2"/>

           <project reference="1.0,

:pserver:cvs.sourceforge.net:/cvsroot/jboss,jboss-transaction,transaction,Branch_3_2"/>

           <project reference="1.0,:

pserver:cvs.sourceforge.net:/cvsroot/jboss,contrib/varia,varia,Branch_3_2"/>

     </provider>

</psf>

 

Da notare che le informazioni sul repository cvs dentro il psf devono essere cambiate se non corrispondono alle nostre esigenze. Al momento ci sono due configurazioni per fare il download dei sorgenti da cvs. Una per chi ha l'accesso in scrittura, ovvero per gli sviluppatori certificati dal JbossGroup (extssh:cvs.sourceforge.net:/cvsroot/jboss con relativo account) , e l'altra in sola lettura per chiunque ha voglia di addentrarsi nel codice (pserver:cvs.sourceforge.net:/cvsroot/jboss con account anonymous). Per piu' informazioni a riguardo andate su http://www.jboss.org/developers/sourcecode.

Veniamo ora a Eclipse. Una volta preso il psf della versione interessata , andare su File/Import e selezionare "Team Project Set"

 

Fig. 4 - importazione dei sorgenti descritti nel file psf

selezionare il file e cliccare su Finish
 

 

Fig. 5 Import Team Project Set

Mettere l'utenza e password cvs se si ha, altrimenti si usa :

  • USER : anonymous
  • PASSWORD :

 
Fig. 6 - User e Password

Marcare "Save Password" altrimenti l'account verrà richiesta per ogni modulo scaricato. A questo punto, con venti minuti circa di dowload avremo tutti i moduli cvs sotto forma di progetti Eclipse



Compilazione dei moduli top
 
JBoss, durante la compilazione usa xdoclet. E' un tool utilizzato per creare automaticamente classi predefinite. XDoclet evita agli sviluppatori di dover creare classi di routine come per esempio uno stub per l'rmi, una home o una remote interface per gli ejb, un mbean nel caso del JMX. Gli xml usati per il build di ant usano pesantemente xdoclet per la generazione di classi. Se noi volessimo compilare i moduli scaricati direttamente con il build manager di eclipse avremmo molti problemi perchè xdoclet sotto eclipse non è configurato nel giusto modo. Dobbiamo quindi utilizzare ant almeno per la prima compilazione. Prima di compilare dobbiamo fare alcune modifiche alla configurazione di Eclipse. Andiamo su Window/Preferences/Java/Installed JREs/Edit e facciamo puntare la JRE alla home del nostro SDK. Questo permetterà ad Ant di trovare il compilatore javac, visto che non è presente nelle JRE.

Fig. 6a - Modifichiamo il path della JRE

Se ci troviamo nella perspective java di Eclipse, sulla nostra sinistra avremo l'elenco di tutti i moduli jboss. Se apriamo il modulo Build e clicchiamo col tasto destro sul build.xml, possiamo configurarlo in modo appropriato. Sul menu che appare clicchiamo sulla seconda voce Ant (nella 3.0.1 di Eclipse ci sono due voci con lo stesso nome Ant, la prima esegue ant con le impostazioni di default, mentre la seconda è configurabile dall'utente). Ci troveremo diversi target di esecuzione. A noi interessano il main che è predefinito e il target release. Con questo target verrà creata una release di jboss perfettamente funzionante sotto la directory $WORKSPACE/build/output. Essa è indispensabile per quando dovremo lanciare l'applicazione, perchè jboss , all'avvio, necessita delle directory bin, conf, lib e di tutti i files xml di configurazione. Clicchiamo ora su Run e aspettiamo che termina la compilazione. Nota, per chi ha un pc poco potente ci potrebbero essere problemi di Out of Memory. Per risolvere il problema è sufficiente lanciare la compilazione prima dagli altri progetti allo stesso modo di come si compila dal Build e poi dal progetto Build stesso. In questo modo quando si andrà a compilare il progetto Build , verranno usate meno risorse, visto che sono già state compilate dagli altri progetti.

 

Fig. 7 - Compilazione tramite ant

Fig. 8 - Configurazione di ant

IMPORTANTE!! Una volta terminata la compilazione bisogna eseguire un refresh dei progetti, in modo da poter visualizzare tutte le classi e i files di con figurazione creati da Ant. Se non fate il refresh non li vedrete nemmeno riavviando Eclipse. Quindi, selezionate tutti i progetti sulla parte sinistra di Eclipse e fate F5, oppure tasto destro/Refresh.



Esecuzione e debugging di Jboss top

 

Prima dell'esecuzione o del debugging di Jboss, ci sono delle cose che bisogna fare. Andiamo innanzitutto su Run/Run. Ci apparirà la finestra di configurazione. Selezioniamo sulla sinistra Java Application e in basso a sinistra clicchiamo su New
 
Fig. 9 Create, manage and run configurations
 

Ci sono diverse voci nel menu'. A noi interessano le voci Main, Arguments e Classpath:

  • Main

    dall'alto in basso, su Name diamo un nome alla nostra configurazione, su Project andiamo su Browse e selezioniamo il progetto System, su Main Class, andiamo in Search e selezioniamo la classe org.jboss.Main

  • Arguments

    dall'alto in basso, alla voce Program Arguments inseriamo -c all . Permette di eseguire l'application server al completo, altrimenti molti moduli non potranno essere visti dal debugger, poi alla voce VM Arguments dobbiamo dare il path della JBOSS_HOME, altrimenti la nostra applicazione andrà subito in errore per mancanza di configurazioni. Scriviamo -Djboss.home.dir=$WORKSPACE/build/output/$RELEASE. Al posto di $WORKSPACE metteremo il path del nostro corrente workspace di Eclipse, e al posto di $RELEASE, metteremo la directory che è stata generata automaticamente da Ant grazie al target release spiegato in precedenza.

  • Classpath

    Il classpath è indispensabile perchè, utilizzando Eclipse, abbiamo purtroppo un disallineamento tra i sorgenti situati nei progetti sulla sinistra e i jar dove Jboss è abituato a prendere i files di configurazione (Per intenderci si tratta di tutti quei files che nei sorgenti si trovano sotto il folder resource. Dovremo quindi specificare nel classpath tutti i jar indispensabili per l'avvio, ovvero quelli sotto la directory bin e quelli sotto lib. Selezioniamo User Entries e andiamo su Advanced (Fig. 10).

 

Fig. 10 Advanced Options

Poi Add Library , Ok, User Library (creiamo una variabile d'ambiente), Next, il bottone User Libraries (Fig. 11)

Fig. 11 Add Library , Ok, User Library

Poi su New. Assegniamo un nome alla libreria appena creata e clicchiamo su Ok. Ora selezioniamo la libreria appena creata e andiamo su Add Jars. Dovremo ora riempire la User Library con tutti i jar che si trovano nei 2 percorsi $WORKSPACE/build/output/$RELEASE/bin e $WORKSPACE/build/output/$RELEASE/lib . Clicchiamo poi su OK, selezioniamo la libreria appena creata e poi Finish.

Occhio che a lungo andare nei prossimi update da cvs, il nome di queste directory cambierà perchè la release aumenterà di versione (al momento c'è la release jboss-3.2.7RC1 ma un giorno diventerà jboss-3.2.8!!!) e quindi bisognerà riaggiornare questa variabile. Lo stesso vale anche per la jboss.home.dir che abbiamo specificato nella voce VM Arguments del pannello Arguments. Ora è tutto pronto per la partenza e possiamo dare il via al lancio. Possiamo lanciare jboss sia con l'opzione Run che con l'opzione Debug (Sono entrambe sincronizzate durante la configurazione). Li troviamo nella parte in alto della Java Perspective. Selezioniamo la java_application creata precedentemente e poi clicchiamo sul bottone Run (Fig. 12)



Mantenimento top
 
Per mantenere la nostra release aggiornata, è importante di tanto in tanto eseguire un update dal cvs su tutti i progetti. E' sufficiente selezionare tutti i progetti, cliccare su di essi con il tasto destro e andare su Team/Update.
 

Fig. 13 - Update CVS dei sorgenti

Con circa 20-10 minuti (a seconda della velocità della linea internet. Non usate il Modem!!!) avremo una versione aggiornata. L'update comporta un rebuild dei progetti. Questo si puo' fare anche da Project/Build all ma non assicura una corretta compilazione, visto che è possibile che vengano richieste nuove classi configurate con xdoclet. Bisogna quindi utilizzare ant con il sistema descritto precedentemente. Un problema che si verifica spesso , successivamente all'update da cvs, è quando vengono aggiunte nuove librerie su di un progetto. Infatti si possono trovare delle classi che richiedono una nuova libreria o il package di un altro progetto. Questo perchè l'update si occupa soltanto di mantenere il versionamento di files e classi ma non aggiorna la configurazione dei progetti per Eclipse. Infatti succede che , eseguendo la compilazione con ant, va tutto bene mentre al momento del lancio con Eclipse ci sono degli errori. Antnon risente della configurazione del progetto, visto che la sua configurazione è descritta nei files xml anch'essi aggiornati da cvs. La configurazione di eclipse , invece dipende strettamente dal psf che abbiamo usato all'inizio per scaricarci i sorgenti. Le soluzioni per rimediare a questo problema sono due, una piuttosto drastica che è quella di reimportarsi i sorgenti tramite il nuovo psf residente nel progetto Build, rieseguendo le operazioni descritte precedentemente, l'altra è quella di aggiornare i progetti man mano che si verificano questi cambiamenti. Dobbiamo percio' eseguire una ricerca degli errori , andando a vedere direttamente i sorgenti. Questo con Eclipse risulta molto semplice, grazie alla view Problems situata di solito nella parte in basso, oppure seguendo semplicemente i pallini rossi, partendo dal Package Explorer fino ad arrivare al sorgente.


Fig. 14 - La view Problems puo' essere presa andando su Window/Show Viewes/Problems


Per modificare la configurazione dobbiamo cliccare sul progetto interessato con il tasto destro , selezionare Properties (Fig. 15) e all'avvio del nuovo pannello selezionare Java Build Path (Fig. 16). Nel caso di librerie, utilizzeremo la voce libraries e aggiungeremo le librerie mancanti, mentre nel caso di packages mancanti andremo sotto Projects e selezioneremo con un flag i progetti che ci interessano.
 
 

Fig. 15 Package Explorer

Fig. 16 - Java Build Path  

Un' altra problematica da risolvere potrebbe essere l'aggiunta di nuovi progetti non presenti nel nostro Package Explorer. Sta a noi tenerci sempre aggiornati sugli sviluppi futuri di Jboss e informarci sui nuovi progetti da installare. Una volta trovato, dobbiamo utilizzare la CVS perspective, la quale viene configurata automaticamente al momento dell'importazione dei files da cvs con il psf. Andiamo su Window/Open Perspective/Other e selezioniamo CVS Repository Exploring.

 

 
Fig. 17 - CVS Perspective

Andiamo su Branches , selezioniamo il progetto interessato cliccando con il tasto destro e infine Checkout. Ci ritroveremo cosi' il progetto dentro il Package explorer.

Luca

 



 Attachments List
Generic Documenteclipse.psf
Generic Documenteclipse3.2.psf



JavaPortal è ideato da:    
K-Tech Logo










LICENZA



Eccetto dove diversamente specificato, i contenuti di questo sito sono rilasciati sotto licenza Creative Commons

Sitemap  © 2002-2004 Copyright Information. Privacy . Today is sabato 19 giugno 2010