Blog

bruno @ 15/01/2007 23:00 - 12 comments

Molti sono scoraggiati ad imparare a programmare in Java Enterprise Edition (J2EE) dalle difficoltà nell’impostazione dell’ambiente di lavoro nel proprio PC di casa. La scelta dei componenti e la poca documentazione “user-friendly” reperibile in rete contribuiscono a lasciare J2EE relegato in ambito aziendale, dove di solito si trova un sistema di server già pronti all’uso e… bisogna solo programmarci dentro.

Anch’io ho rimandato l’approccio a questo ambiente più di quanto volessi, ma a questo punto posso confermare che è più facile di quello che sembra! :D

Prima di tutto c’è da fare una doverosa introduzione: avevo sempre sentito parlare male di Java, a causa della sua pesantezza e della conseguente lentezza. Ad un certo punto mi sono chiesto il motivo per cui è così diffuso nelle aziende… e vi assicuro che è INCREDIBILMENTE diffuso!

Mi sono dato una spiegazione dopo diversi colloqui di lavoro: è frequente che un’azienda abbia la necessità di sviluppare diverse forme di interazione con un unico ambiente centrale, un “core”, che dovrà dialogare con client sviluppati in vario modo (interfacce testuali, grafiche, per dispositivi mobili, interfacce web, eccetera)... ed in questa ottica Java mette a disposizione dei programmatori una stuttura orientata al riutilizzo del codice già scritto, alla scalabilità ed al lavoro di gruppo. Ne risulta che l’azienda ci guadagna… ed anche tanto!

Andiamo all’aspetto pratico. Bisogna decidere quali programmi utilizzare come application server e come ambiente di sviluppo. Come Wikipedia insegna, un application server è un software che fornisce l’infrastruttura e le funzionalità di supporto, sviluppo ed esecuzione di applicazioni e componenti server in un contesto distribuito. Si tratta di un complesso di servizi orientati alla realizzazione di applicazioni per il web, multilivello ed enterprise, con alto grado di complessità. Sapendo per certo che in queste diatribe ne escono sempre vincitori i rappresentanti del software libero, sia come sicurezza che come reperibilità (ed anche per i costi!!!), non ho neanche guardato il software commerciale (WebSphere di IBM, Oracle AS, Weblogic, ...). La scelta, per quanto riguarda l’AS, è ricaduta sul progetto open-source più sviluppato e più supportato da una vasta comunità di sviluppatori: JBoss.

E’ possibile scaricarlo direttamente dalla sezione download del sito ufficiale (io ho optato per l’ultima release stabile, che al momento è la 4.0.5).

Un IDE di sviluppo che qualche mese fa mi è risultato ottimo nella programmazione Java (standard e mobile) è stato Eclipse (anch’esso open source), quindi mi sono informato se fosse possibile renderlo interoperabile con le strutture J2EE. Le soluzioni erano diverse, ma alla fine ho deciso scaricare JBoss Eclipse IDE, una versione di Eclipse modificata direttamente dagli sviluppatori di JBoss, con installati tutti i plugin necessari al funzionamento in accoppiata con l’application server.

Ah… ovviamente la macchina server è equipaggiata con una stupenda Slackware Linux 11.0! ;)
(tutte le indicazioni seguenti riguardano Slackware, ma sono facilmente riportabili ad altre distribuzioni)

L’installazione di JBoss è semplice, basta estrarre l’archivio:

$ cd /opt
$ unzip /path/to/downloaded/jboss-4.0.5.GA.zip
$ ln -s jboss-4.0.5.GA jboss

Non bisogna compilarlo perchè è anch’esso scritto in Java, quindi è multi-piattaforma e gira sotto la Java VM ;)

Prima di far partire il server è necessario installare JDK, qualora non fosse già presente nel sistema, per poi impostare qualche variabile d’ambiente:

$ ln -s /usr/lib/jdk1.5.0_09 /usr/lib/java
$ export JBOSS_HOME='/opt/jboss'
$ export JAVA_HOME='/usr/lib/java'
$ export CLASSPATH='/usr/lib/java/lib/tools.jar'

A questo punto si potrà lanciare JBoss eseguendo

/opt/jboss/bin/run.sh > /dev/null &

(uso la redirezione dell’output per evitare che la shell sia inondata dai messaggi di debug anche con il programma messo in background)

E’ consigliabile salvare uno script d’avvio in

/etc/rc.d/rc.jboss
, in modo da poter decidere se lanciare il server al boot della macchina dando o meno l’attributo di esecuzione al file:

case "$1" in
  start)
    echo "Starting JBoss:  /opt/jboss/bin/run.sh" 
    export JBOSS_HOME='/opt/jboss'
    export JAVA_HOME='/usr/lib/java'
    export CLASSPATH='/usr/lib/java/lib/tools.jar'
    /opt/jboss/bin/run.sh > /dev/null &
  ;;
  stop)
    echo "Stopping JBoss..." 
    /opt/jboss/bin/shutdown.sh -S > /dev/null &
  ;;
  restart)
    echo "Restarting JBoss..." 
    /opt/jboss/bin/shutdown.sh -S > /dev/null &
    /opt/jboss/bin/run.sh > /dev/null &
  ;;
  *)
    echo "Usage: $0 {start|stop|restart}" 
    exit 1
  ;;
esac

Adesso è il turno di JBoss IDE:

# cd /usr/local
# tar xfvz /path/to/downloaded/JBossIDE.tar.gz
# chmod +x /usr/local/eclipse/eclipse

Sarà necessario eseguire Eclipse come root, per fare in modo che il server possa essere gestito dall’interno dell’applicazione. Per fare ciò, utilizzeremo il programma sudo, modificando il file

/etc/sudoers
in questo modo:

# User alias specification
#### inserisci qui gli utenti sviluppatori ####
User_Alias     JBOSS_DEVEL = bruno, pippo 
# Cmnd alias specification
Cmnd_Alias     JBOSS_IDE = /usr/local/eclipse/eclipse
# User privilege specification
JBOSS_DEVEL     ALL = NOPASSWD: JBOSS_IDE

Poi basterà lanciare JBoss IDE con il comando

$ sudo /usr/local/eclipse/eclipse

(ed eventualmente aggiungere un’icona sul desktop che lanci questo comando).

Prima di iniziare a programmare, sarà necessario impostare su Eclipse i parametri del server JBoss nella finestra Run > Debug…, cliccando a sinistra su JBoss 4.0.x e poi su New. Ovviamente la home directory deve essere impostata su

/opt/jboss
.

A questo punto sarà possibile iniziare un nuovo progetto J2EE, aggiungere componenti come EJB e Servlet, impostare le XDoclet, effettuare il packaging ed eseguire debug e deploy sulle proprie web-app! :)

Adesso la cosa migliore da fare è seguire un buon TUTORIAL per imparare velocemente ad usare tutti questi simpaticissimi giocattoli :)


0.0/5 Stars
  • Currently 0.0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5
LaNika @ 16/01/2007 14:35

ehh certo ormai non scrivi più per noi comuni mortali!

Bruno @ 16/01/2007 14:54

C’è un piccolo dummy dentro ognuno di noi :)
Se tu scrivessi un “ortottica for dummies” potrei esserne io il destinatario! eheheh!

Antonella @ 16/01/2007 16:27

E bravo Bruno!Visto che potenza ha Java?

Bruno @ 16/01/2007 21:52

Mah.. per essere potente è potente, questo già si sapeva. Il problema è che (soprattutto J2EE) è veramente complicato come struttura. Ma niente che mi possa fermare, sia chiaro!!! :D
Non è un semplice “programma, compila ed esegui”... bisogna pure stare attenti alle diverse parti della struttura ed imparare a trattarle in modo diverso!


Mi viene il dubbio che ci sia così tanta richiesta di programmatori J2EE proprio perchè… sono pochi!

Smash @ 17/01/2007 20:18

Bellissimo tutorial !! Una guida completa per sapere dove mettere le mani all’inizio… proprio quello che cercavo. Avevo proprio in mente di iniziare con java..ma da dove no.. ogni sito dice la sua..ma adesso, visto che ci conosciamo, quando inizio seguirò i tuoi primi consigli !

liciardo @ 18/01/2007 17:03

bruno smettila di fare il professionista…!
Non sai lavorare….!:)
Ti ricordi che alla j…. ti ho insegnato tutto?...

Bruno @ 18/01/2007 17:21

Eh lo so… sono dovuto andare per 6 mesi dallo psichiatra per dimenticare tutto e ricominciare una vita normale, senza avere incubi riguardanti certi “linguaggi proprietari”! ;) Ghghghgh!
PS: spero di aver capito bene chi sei…

jack_sparrow @ 16/05/2007 13:04

Ragazzi io ho iniziato a studiarlo a lavoro ed è un casino.

Endayer Starcould @ 17/12/2007 19:59

Caro Bruno,
spero che leggerai questo messaggio anche se è passato molto tempo dal tuo post. Ho un problema con la configurazione di JBoss, forse qualcosa legato agli ultimi rilasci, cmq all’interno della cartella principale del zip (regolarmente decompressa) non c’è la cartella bin, conseguente non riesco a configurare il debug perchè non trova la home directory. Sto usando la versione 4.2.2.GA, hai suggerimenti?

Bruno @ 18/12/2007 00:07

Ciao Endayer Starcould.
Ho scaricato la nuova versione di JBoss e non ho riscontrato anomalie rispetto alla guida: c’è la cartella bin e tutto il suo contenuto.
Ecco gli screenshot…
http://img413.imageshack.us/my.php?image=jbossbinez2.jpg
http://img413.imageshack.us/my.php?image=jbossbin2xh0.jpg


Probabilmente si è scaricato male il file, oppure hai preso l’archivio sbagliato. Devi scaricare JBoss Application Server, da questo link: http://labs.jboss.com/jbossas/download


In bocca al lupo ;)

Endayer Starcould @ 18/12/2007 11:33

ok, grazie tante bruno.


AScolta, provvisoriamente ho risolto scaricando il 4.0.2 … bha, ad ogni modo, quando lancio il debug, la console mi da:


ERROR: transport error 202: gethostbyname: unknown host
ERROR: JDWP Transport dt_socket failed to initialize, TRANSPORT_INIT(510)
JDWP exit error AGENT_ERROR_TRANSPORT_INIT(197): No transports initialized [../../../src/share/back/debugInit.c:690]
FATAL ERROR in native method: JDWP No transports initialized, jvmtiError=AGENT_ERROR_TRANSPORT_INIT(197)


hai idea di perchè il metodo gethostbyname dia quest’errore?

Bruno @ 18/12/2007 13:06
Trovi la soluzione a questo link:
http://wiki.jboss.org/wiki/Wiki.jsp?page=RulesRepositoryBuildInstructions
:)

To correct the problem, just add the following line to /etc/hosts :
127.0.0.1 localhost


Name


Email


Website


Add comment