Newsgroup: it.comp.java
Titolo: Librerie javax.servlet non riconosciute

Ciao a tutti.Volendo creare qualche servlet per esercitarmi con Tomcat,
succede che sulla versione 1.4.1_02 che ho di java,non ci sono le
librerie necessarie.
Infatti se metto 'import javax.servlet.*' e 'import
javax.servlet.http.*'
mi dice che le librerie richiamate non ci sono.Le ho scaricate dal sito
della Sun, inserite nel package src.zip insieme alle altre lib javax, ma
il risultato non cambia.Ho anche provato a ricopiarle sulla cartella del
mio sorgente, idem.Mi sfugge qualcosa?
Grazie
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

 Grazie
Devi aggiungere il file servlet.jar al classpath. Se usi Tomcat 4.* non
hai nemmeno bisogno di scaricarlo, dato che lo trovi nella directory
$CATALINA_BASE/common/lib
-- 
Lucio Benfante
Java User Group Padova: 
http://www.jugpadova.it
Brainbench MVP for Java 1: 
http://www.brainbench.com
MyTranscript: 
http://www.brainbench.com/transcript.jsp?pid=167064

 $CATALINA_BASE/common/lib
..scusa, piu' correttamente andrebbe indicata come
$CATALINA_HOME/common/lib


 Grazie
Le API javax.servlet non sono distributite con la VM standard, trovi
queste API in $CATALINA_HOME/common/lib/servlet.jar (dove
$CATALINA_HOME è la dir. dove hai installato Tomcat), è quindi
sufficiente che tu inserisca nel classpath un riferimento al jar
fornito con Tomcat
Ciao

Ah, grazie, non avevo pensato che potessero già essere in Tomcat.
Però, scusate l'insistenza, io così in pratica aggiungo un altro
riferimento
corrispondente a queste lib ed il loro percorso ed è tutto chiaro, il
problema
si risolve.Ma non doveva risolversi cmq, una volta che io ho scompattato
src.zip, inserito la cartella servlet dentro javax e ricompattato?Magari
il mio ragionamento è sbagliato, ma pensavo che così queste venissero
con-
siderate un unico blocco con le lib java indicate in JAVA_HOME.In
effetti
non succede e ci sarà un motivo.Formulo questa domanda perchè se poi
decido
di aggiungere altre librerie, mi farebbe comodo considerarle tutte in un
unica directory senza rimaneggiare le variabili d'ambiente.
Spero che abbiate la pazienza di spiegarmi ulteriormente ed intanto 
vi ringrazio.




src.zip contiene i sorgenti della libreria JFC (Java Fundation
Classes). La JVM funziona perfettamente anche senza quel file. Quello
che avevi intenzione di fare, cioè aggiungere manualmente alla runtime
library le classi dei package javax.servlet.* e figli, è possibile ma
non è consentito dalla licenza d'uso di Sun (licenza che hai accettato
scaricando il JDK).
Se proprio vuoi fare degli esperimenti, il file che ti interessa è
rt.jar. Lo puoi trovare in $JDK_HOME/jre/lib.
Ricordati di fare SEMPRE i backup dei file originali!!!
--
"tanto va la gatta al largo che affoga"
(per rispondere personalmente leva IlDitoDalCulo)

Ok, adesso ho capito  la limitazione.Non mi č neanche passato x la testa
che una loro libreria non si potesse aggiungere alle altre loro
librerie.
Cmq anche inserendo nel classpath il percorso di Tomcat/common/lib , 
non funzionano lo stesso.
Grazie a tutti per le spiegazioni


Ho fatto il lavoretto sulle rt.jar ed č andato tutto a posto.


Grazie
Anche se funziona, non dovresti toccare rt.jar . Il parametro -cp per
il compilatore e la cartella jre/lib/ext sono stati creati apposta per
queste richieste.
Quello che dovevi fare in realtà è usare il parametro -cp quando
richiami il compilatore, in questo modo:
javac -cp $CATALINA_HOME/common/lib/servlet.jar NomeClasse.java
oppure, sotto windows
javac -cp %CATALINA_HOME%\common\lib\servlet.jar NomeClasse.java
Ti consiglio di ripristinare il rt.jar originale, se non vuoi
rischiare di confondere la JVM quando verrà pubblicata una nuova
versione di Tomcat (preparati a una caterva di ClassNotFoundException
/ VerificationException / Ambiguous class name / ecc...)
Infine, se guardi nella cartella bin della tua installazione di
Tomcat, troverai uno script (batch o shellscript a seconda del sistema
operativo che usi) che prepara la sessione corrente del prompt dei
comandi (cmd o bash o quello che sia) con le variabili d'ambiente
giuste... mi pare si chiami setclasspath o qualcosa del genere... e
dopo averlo usato puoi tranquillamente chiamare javac da riga di
comando senza preoccuparti troppo.
Poi, se vuoi tenerti una JVM non standard a rischio di
malfunzionamento, liberissima di fare quello che vuoi... sul tuo pc!


Sì, sapevo che si poteva anche fare così, però volevo trovare una
soluzione
che mi svincolasse da Tomcat, ovvero poter creare le servlets anche su
un
sistema che non ce l'avesse.Giustamente il trucchetto delle rt.jar può
causare instabilità, quindi in effetti è + corretta l'ultima soluzione
da
te menzionata, visto che mi lascia facoltà di piazzare le librerie dove
voglio a patto poi di indicarle al compilatore.
Ti ringrazio molto, adesso ho le idee più chiare.Ciao
