Newsgroup: it.comp.java
Titolo: Ancora Servlet con Tomcat

Ho scritto un post qualche giorno fa a cui ha gentilmente risposto
Kazuma.
Ho però un'altra domanda.
Dunque, ho Linux RedHat8.0 + Tomcat 4.1.24
Nella cartella ROOT/WEB-INF/classes c'è una servlet che si chiama
InviaMail che ho compilato correttamente.
Appendo in fondo al messaggio la parte che interessa del file web.xml.
Se richiamo 
http://localhost/InviaMail
 ottengo:
HTTP Status 503 - Servlet InviaMail is currently unavailable
Non riesco a capire come fare a farla andare...
Grazie
---cut---
  <servlet>
        <servlet-name>InviaMail</servlet-name>
        <servlet-class>InviaMail</servlet-class>
    </servlet>
 <servlet-mapping>
        <servlet-name>InviaMail</servlet-name>
        <url-pattern>/InviaMail</url-pattern>
    </servlet-mapping>
-- 
reintermediare processi front-end

     </servlet>
Il nome della classe della servlet e' proprio cosi'?
Non e' in un package?
Hai dato un'occhiata al file di log di Tomcat? Non ci sono messaggi che ti
segnalano qual'e' il problema?
-- 
Lucio Benfante - Java User Group Padova
Brainbench MVP for Java 1
http://www.brainbench.com
MyTranscript: 
http://www.brainbench.com/transcript.jsp?pid=167064

segnalano qual'e' il problema?
2003-06-12 10:03:02 StandardWrapper[:default]: Loading container
servlet default
2003-06-12 10:03:02 StandardWrapper[:invoker]: Loading container
servlet invoker
2003-06-12 10:03:04 StandardWrapper[:InviaMail]: Marking servlet
InviaMail as unavailable
2003-06-12 10:03:04 StandardWrapperValve[InviaMail]: Allocate
exception for servlet InviaMail
javax.servlet.ServletException: Wrapper cannot find servlet class
InviaMail or a class it depends on
sembra come se non trovasse la classe...
devo mica impostare il classpath a puntare in web-inf/classes ???
-- 
reintermediare processi front-end

 
Definisci la servlet in un package e costruisci la struttura di directory
adeguata a partire da classes.
Qualche giorno fa si era parlato di un argomento simile con Kazuma
aproposito di pagine JSP, ed era venuto fuori che di default vengono
eseguite come appartenenti ad un package specifico di tomcat. Potrebbe
essere un problema simile.
Ora non ho il tempo di verificare il motivo per cui questo e' necessario.
Qualcuno lo sa? Deriva dalle specifiche delle servlet o e' un
comportamento anomalo di Tomcat?


 ha scritto nel messaggio
news:t2dgevo1euck0dqjl...@4ax.com...


 prova con 
http://localhost/servlet/InviaMail
Attenzione, questa modalità per chiamare le servlet funziona solo se è
attivo un "invoker" che risponde a quel mapping. Di default, infatti, un
servlet container ha la necessità di associare uno o più "mapping" ad una o
più servlet.
Dalla versione 4.1.3 beta di Tomcat, il mapping "/servlet/" è stato
commentato (quindi disabilitato) dal web application descriptor di default
($TOMCAT_HOME/conf). Tra le motivazioni c'è anche quella di proteggersi da
un piccolo problema di security (chiamato XSS - Cross Server Scripting
vulnerability).
Se hai la necessità di utilizzare quello specifico mapping (ma non ne vedo
il motivo fuori da un ambiente di prototype e sviluppo) puoi aprire il
web.xml di default e "scommentare" quel mapping.
    Regards,
        Kazuma
--
I've got nothing against God. It's his fan club I can't stand.
Alex "Kazuma" Garbagnati, 
http://www.kazuma.net
EJB & Tomcat jGuru FAQ Manager, 
http://www.jGuru.com
Tutor "Progetto Scuole", 
http://www.JIA.it
Java Italian Association - SUN - MIUR

 comportamento anomalo di Tomcat?
Nelle specifiche delle servlet 2.3 (SRV.9.5) viene detto:
"The /WEB-INF/classes/ directory for servlet and utility classes. The
classes in this directory must be available to the application class
loader."
...quindi Tomcat si comporta correttamente.
