Newsgroup: it.comp.java
Titolo: Problemi Tomcat & Struts

Salve a tutti.
Sto sviluppando un'applicazione web-oriented e vorrei sottoporvi alcuni
problemi sorti.
Premetto che utilizzo Struts1.1 e Tomcat 5.0.
Il primo problema č la console di Tomcat. Quando avvio il server, alla fine
scompare la console, sia
la faccia partire con tomcatw sia con startup. Ho provato anche con
facendolo partire con il bootstrap.jar
ma la console scompare lo stesso.
Praticamente sto esaurendo perchč per effettuare il debug devo ogni volta
aprire il log file con inutile
spreco di tempo.
Il secondo problema riguarda pure Tomcat.
Dalla versione 4 Tomcat fa effettuare l'hot-deploy, ma dato che ogni volta
che modifico struts-config.xml o  tiles-defs.xml, (il
che avviene con frequenza) devo andare nel manager di tomcat e fare il
reload dell'applicazione).
Siccome la cosa č molto snervante, anche qui con inutile spreco di tempo,
vorrei chiedervi se conoscete
un modo in Tomcat (o magari se esiste qualche altro servlet/jsp engine) in
cui sia possibile non effettuare nessun tipo di reload.
Il terzo problema riguarda Struts+Tiles.
Nela mia applicazione non utilizzo una servlet action per ogni form ma ad
esempio, per quanto riguarda la registrazione utenti,
ho un'unica servlet che, in base al parametro che arriva dalla jsp (ad
esempio "/user.do?action=insert"), esegue
specifiche istruzioni.
Fin qui nessun problema.
Quando ad esempio pero' dalle mie classi management arriva un errore (ad
esempio l'inserimento di un record con chiave duplicata),
non utilizzando tiles potrei fare benissimo un
map.forward("paginaErrore.jsp?parametro=chiaveDuplicata").
Ma dato che io utilizzo Tiles per crearmi le varie tessere dell'applicazione
sono costretto a inserire nel map.forward il nome
di una definizione all'interno di tiles-def.xml.
Finora ho risolto in questo modo:
In struts-config.xml
map.forward("chiaveDuplicata").
In tiles-defs.xml:
<definition name="chiaveDuplicata" extends="site.mainLayout" >
 <put name="body"
value="/jsp/moduli/login/registrazione.jsp?errore=chiaveDuplicata"/>
</definition>
Tutto questo mi funziona ma mi sembra una forzatura per il framework e anche
per l'architettura dell'applicazione.
Volevo chiedervi se conoscete qualche sistema migliore, piů pulito ed
elegante per superare questa forzatura.
Grazie in anticipo.
euterpex

Salve a tutti.
Sto sviluppando un'applicazione web-oriented e vorrei sottoporvi alcuni
problemi sorti.
Premetto che utilizzo Struts1.1 e Tomcat 5.0.
Il primo problema è la console di Tomcat. Quando avvio il server, alla fine
scompare la console, sia
la faccia partire con tomcatw sia con startup. Ho provato anche con
facendolo partire con il bootstrap.jar
ma la console scompare lo stesso.
Praticamente sto esaurendo perchè per effettuare il debug devo ogni volta
aprire il log file con inutile spreco di tempo.
Aprendolo con il bootstrap mi dà il seguente errore:
java.net.BindException: Address already in use: JVMLBIND.
La cosa strana è che, prima di lanciare il bootstrap, l'indirizzo/porta a
cui
si collega tomcat non è in ascolto.
Nonostante la console scompaia Tomcat funziona comunque...
Il secondo problema riguarda pure Tomcat.
Dalla versione 4 Tomcat fa effettuare l'hot-deploy, ma dato che ogni volta
che modifico struts-config.xml o  tiles-defs.xml, (il
che avviene con frequenza) devo andare nel manager di tomcat e fare il
reload dell'applicazione).
Siccome la cosa è molto snervante, anche qui con inutile spreco di tempo,





In struts-config.xml
map.forward("chiaveDuplicata").
In tiles-defs.xml:


Volevo chiedervi se conoscete qualche sistema migliore, più pulito ed


 ma la console scompare lo stesso.
Tomcat parte??? A me in win dava lo stesso problema ed era semplicemente che
Oracle 9i mi installa anche apache tra le varie cose e mi utilizza la porta
8080, solitamente usata da tomcat.
Se e' questo, prova a modificare %CATALINA_HOME%\conf\server.xml.
Cerchi il valore 8080 e lo modifichi ad esempio in 8090 e sei a posto.
Prima di fare questa cosa, t consiglio di farti una copia del file!
ciaux
Davide

 Prima di fare questa cosa, t consiglio di farti una copia del file!
Questo è l'unico problema che ho risolto quasi subito dopo l'invio del post.
Praticamente
XP, mi metteva Tomcat come servizio, quindi quando cercavo di farlo partire
manualmente
mi dava indirizzo già usato...e non aveva tutti i torti...
P.S. Come fai quando modifichi struts-config.xml e vuoi testare
l'applicazione?
Effettui il reload da Tomcat Manager oppure hai trovato qualche altra
soluzione più rapida?
grazie
euterpex

 soluzione più rapida?
In teoria dovrebbe accorgersi se il file e' statomodificato in base alla
data di modifica. In pratica ti conviene rilanciare tomcat.
Daltronde quando ricompili un'applicazione impieghi comunque parecchio
tempo, no?
Potrei comunque sbagliarmi, non sono un esperto, anzi, sono ancora in alto
mare con struts!!!